精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

用二叉樹實現(xiàn)先序、中序、后序、層次遍歷的算法

時間:2023-04-30 23:28:18 資料 我要投稿
  • 相關推薦

用二叉樹實現(xiàn)先序、中序、后序、層次遍歷的算法

用先序遍歷建立一個二叉樹,實現(xiàn)先序遍歷、中序遍歷、后序遍歷,且用隊列實現(xiàn)層次遍歷: #include

using namespace std;

#define N 10

typedef struct node{

char data;

struct node*lchild,*rchild;

}*BiTree,BTNode;

typedef struct{

BiTree data[N];

int front,rear;

}SqQueue;

BiTree CrtBt()

{ char ch;

BiTree bt;

ch=getchar();

if(ch=='_') return NULL;

bt=new BTNode;

bt->data=ch;

bt->lchild=CrtBt();

bt->rchild=CrtBt();

return bt;

}

void preorder(BiTree bt)

{ if(bt==NULL) return;

putchar(bt->data);

preorder(bt->lchild);

preorder(bt->rchild);

}

void midorder(BiTree bt)

{ if(bt==NULL) return;

midorder(bt->lchild);

putchar(bt->data);

midorder(bt->rchild);

}

void lassorder(BiTree bt)

{ if(bt==NULL) return;

lassorder(bt->lchild);

lassorder(bt->rchild);

putchar(bt->data);

}

void DelTree(BTNode *bt)

{ if(bt==NULL) return;

DelTree(bt->lchild);

DelTree(bt->rchild);

delete(bt);

}

void init_Queue(SqQueue &Q)

{ Q.front=-1;

Q.rear=-1;

}

int enterQueue(SqQueue &Q,BiTree bt) {

if((Q.rear+1)%N==Q.front) return 0;

Q.rear=(Q.rear+1)%N;

Q.data[Q.rear]=bt;

return 1;

}

int empty(SqQueue &Q)

{ if(Q.front==Q.rear) return 1;

else

return 0;

}

BiTree delQueue(SqQueue &Q)

{ BiTree p;

Q.front=(Q.front+1)%N;

p=Q.data[Q.front];

return p;

}

void layertravel(BiTree bt)

{ BiTree p;

SqQueue Q;

init_Queue(Q);

if(bt==NULL) return;

enterQueue(Q,bt);

while(!emp用二叉樹實現(xiàn)先序、中序、后序、層次遍歷的算法ty(Q))

{ p=delQueue(Q);

putchar(p->data);

if(p->lchild) enterQueue(Q,p->lchild); if(p->rchild) enterQueue(Q,p->rchild); }

}

int main()

{ BiTree bt;

cout

bt=CrtBt();

cout

preorder(bt);

cout

cout

cout

cout

運行結果:

【用二叉樹實現(xiàn)先序、中序、后序、層次遍歷的算法】相關文章:

04-27

04-28

霓裳中序第一賞析11-20

實Hilbert空間H中的一個新半序-φ半序04-29

層序的成因及層序地層格架05-02

鶯啼序 用夢窗韻原文02-28

《序卦》卦序中的陰陽平衡互補與變通配四時思想04-30

《鶯啼序》原文12-19

鶯啼序原文02-28

鶯啼序的原文03-01