搬磚以前的題目
需要複習棧與佇列的小夥伴,可以到我的棧與佇列文章裡面搬磚
#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...
資料結構與演算法二
資料結構作為一門學科主要研究資料的各種邏輯結構和儲存結構,以及對資料的各種操作。因此,主要有三個方面的內容 資料的邏輯結構 資料的物理儲存結構 對資料的操作 或演算法 通常,演算法的設計取決於資料的邏輯結構,演算法的實現取決於資料的物理儲存結構。邏輯結構 是指資料物件中資料元素之間的相互關係。其實這...