資料結構與演算法之各種方法遍歷二叉樹

2021-09-29 10:41:55 字數 2032 閱讀 7966

搬磚以前的題目

需要複習棧與佇列的小夥伴,可以到我的棧與佇列文章裡面搬磚

#include

#include

#include

#include

#define maxsize 100

using namespace std;

typedef

struct node

btnode;

typedef

struct

sqqueue;

typedef

struct

sqstack;

void

initstack

(sqstack *

&s)void

initqueue

(sqqueue *

&q)void

destroystack

(sqstack *

&s)bool stackempty

(sqstack *s)

bool push

(sqstack *

&s,btnode * e)

bool queueempty

(sqqueue *q)

bool enqueue

(sqqueue *

&q,btnode * e)

bool dequeue

(sqqueue *

&q,btnode *

&e)bool pop

(sqstack *

&s,btnode *

&e)

bool gettop

(sqstack *s,btnode *

&e)void

createbtree

(btnode *

&b,char

*str)

// 創造二叉樹

else}}

j++; ch=str[j];}

}void

preorderfx

(btnode *b)

//先序遍歷 非遞迴

if(p->lchild !=

null)}

printf

("\n");

}destroystack

(st);}

void

inorderfx

(btnode *b)

//中序遍歷 非遞迴 if(

!stackempty

(st))}

printf

("\n");

destroystack

(st);}

void

postorderfx

(btnode *b)

//後序遍歷 非遞迴

r=null

; flag=true;

while(!

stackempty

(st)

&& flag)

else}}

while(!

stackempty

(st));

printf

("\n");

destroystack

(st);}

void

preorder

(btnode *b)

//先序遍歷 遞迴

}void

inorder

(btnode *b)

//中序遍歷 遞迴

}void

postorder

(btnode *b)

//後序遍歷 遞迴

}void

levelorder

(btnode *b)

//層次遍歷

if(p->rchild!=

null)}

}void

destroybtree

(btnode *

& b)

//銷毀二叉樹

}int

main()

資料結構與演算法之各種方法遍歷二叉樹

搬磚以前的題目 需要複習棧與佇列的小夥伴,可以到我的棧與佇列文章裡面搬磚 include include include include define maxsize 100 using namespace std typedef struct node btnode typedef struct ...

演算法 資料結構 多種方法實現二叉樹遍歷

public static class node 主要借助佇列先進先出來實現 public void level node head queue queue newlinkedlist 將頭節點放入佇列中 queue.add head 當佇列不為空時,每次彈出乙個節點,彈出就列印 while que...

資料結構與演算法二

資料結構作為一門學科主要研究資料的各種邏輯結構和儲存結構,以及對資料的各種操作。因此,主要有三個方面的內容 資料的邏輯結構 資料的物理儲存結構 對資料的操作 或演算法 通常,演算法的設計取決於資料的邏輯結構,演算法的實現取決於資料的物理儲存結構。邏輯結構 是指資料物件中資料元素之間的相互關係。其實這...