求出乙個排序二叉樹中結點度數為一的結點個數

2021-04-01 17:07:35 字數 1349 閱讀 4016

#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,當第二次進來時,將...