亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c語言用棧實現二叉樹的先序非遞歸遍歷,程序運行一半就停止了怎么改?

c語言用棧實現二叉樹的先序非遞歸遍歷,程序運行一半就停止了怎么改?

#include<stdio.h>#include<stdlib.h>#define MaxSize 30typedef char DataType;typedef struct Node{?? DataType data;?? struct Node *Lchild;?? struct Node *Rchild;} BiTNode, *BiTree;?typedef struct Stacknode{?? char data[MaxSize];?? int top;}SeqStack;SeqStack *InitStack(){?? ?SeqStack *s;?? ?s=malloc(sizeof(SeqStack));?? ?s->top=-1;?? ?return s;}int IsEmpty(SeqStack *s){?? ?if(s->top==-1) return 1;?? ?else return 0;}int Push(SeqStack *s, char x) {?? if(s->top==MaxSize-1)?? ?return 0;?? else{? ??? ?s->top++;? ??? ?s->data[s->top]=x;? ??? ?return 1;?? }}int Pop(SeqStack *s,char *x){?? ?if(IsEmpty(s))? return 0;?? ?else {?? ??? ?*x=s->data[s->top];?? ??? ?s->top--; return 1;?? ?}}void CreateBiTree(BiTree *root){?? char ch;?? ch=getchar();?? if(ch=='#') ??? *root=NULL;?? else?? {??? *root=(BiTree)malloc(sizeof(BiTNode));??? (*root)->data=ch;??? CreateBiTree(&((*root)->Lchild));??? CreateBiTree(&((*root)->Rchild));?? }}??void PreOrder(BiTree root)?{??? ?SeqStack *s;??? ?BiTree p;??? ?InitStack(s);??? ?p=root;??? ?while(p!=NULL||!IsEmpty(s))??? ?{??? ??? ?while (p!=NULL)??? ??? ?{??? ??? ??? ?printf("%c",p->data);??? ??? ??? ?Push(s,p);??? ??? ??? ?p=p->Lchild;?? ??? ? }?? ??? ? if(!IsEmpty(s))?? ??? ? {?? ??? ? ?? ?Pop(s,&p);?? ??? ? ?? ?p=p->Rchild;?? ??? ? }?? ? }?}???int main()?{??? ?BiTree root;??? ?CreateBiTree(root);??? ?PreOrder(root);?}
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 1944 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號