1 回答

侃侃爾雅
TA貢獻1801條經驗 獲得超16個贊
以下兩種描述形式之一均可:
void PreOrderTree(TNode *root, void (*Visit)())
{ p= root; if(p){Visit(p-> data);
PreOrderTree(p- > firstchild);
PreOrderTree(p-> nextsibling) ;}}
或者:
void PreOrderTree(TNode *root, void ( * Visit)())
{ p= root;
while(p | | ! StackEmpty(s)){
while(p) {Visit(p- > data) ;Push(s,p) ;p=p- > firstchild;}
p= Pop(s);p= p-> nextsibling;}}
擴展資料
孩子兄弟表示法,采用的是鏈式存儲結構,其存儲樹的實現思想是:從樹的根節點開始,依次用鏈表存儲各個節點的孩子節點和兄弟節點。
因此,該鏈表中的節點應包含以下 3 部分內容:
1、節點的值;
2、指向孩子節點的指針;
3、指向兄弟節點的指針;
用 C 語言代碼表示節點結構為:
#define ElemType char
typedef struct CSNode{
ElemType data;
struct CSNode * firstchild,*nextsibling;
}CSNode,*CSTree;
- 1 回答
- 0 關注
- 189 瀏覽
添加回答
舉報
0/150
提交
取消