#include
#include
#include
#include
#include
#define error 0
#define stack_init_size 100
#define overflow -1
#define false 0
#define true 1
#define ok 1
int i=0;
structtree;
typedef struct tree selemtype;
typedef int status ;
struct stack
;typedef struct stack *psqstack;
typedef struct stack sqstack;
status initstack(sqstack **s)
status stackempty(sqstack s)
status push(sqstack *s,selemtype e)
status pop(sqstack *s,selemtype *e)
void visite(structtree *t)
struct tree *create_btree(struct tree *t,struct tree *r,char data)//建立二叉樹
r->lchild= 0;r->rchild=0;r->data=data;
if (t)
else
returnr;
}if(datadata)
create_btree(r,r->lchild,data);
else
create_btree(r,r->rchild,data);
return t;
}void preorderunrec(struct tree *t,sqstack *s)//前序遍歷二叉樹
;push(s,*p);
p=p->lchild;
};//endwhile
while (!stackempty(*s)) //通過下一次迴圈中的內嵌while實現右子樹遍歷
;//endif
};//endwhile
}//preorderunrec
void main()
;printf("/n");
preorderunrec(t,sa);
printf("度數為一的結點數為:%d",i);
printf("結束請按q!");
if(getchar()=='q') printf("再見");
else;
}
二叉樹結點, 排序
二叉樹結點,排序 1.二叉搜尋樹結點最小距離 給定乙個二叉搜尋樹的根結點 root,返回樹中任意兩節點的差的最小值 對這個序列相鄰相減,取最小值即可。實現時,可以優化掉這個序列。在遍歷時記錄上乙個訪問的節點值,和當前節點相減,記錄下最小值即可 定義樹節點 public class treenode ...
二叉樹 二叉樹的下乙個結點
題目描述 給定一棵二叉樹和乙個結點,要求找到中序遍歷此樹時該結點的下乙個結點。分析 中序遍歷一棵二叉樹時,要根據乙個結點有無右子樹而分開討論。若當前結點有右子樹,則它的下乙個結點就是其右子樹的最左葉子結點 若當前結點沒有右子樹,那麼又分兩種情況 若當前結點是其父節點的左孩子結點,那麼其下乙個結點就是...
判斷乙個樹為完全二叉樹
該節點有左子樹,可以沒有有子樹,但如果有右子樹,就必須有左子樹 這裡我們可以用層序遍歷的思想,借助乙個佇列,佇列儲存的是node 將該節點入佇列,出佇列的同時將下一層自己的左右節點入佇列,設定乙個標誌位,剛開始位true,如果此時左右節點為空時,置為false,第一次為false,當第二次進來時,將...