編寫非遞迴遍歷演算法,統計二叉樹的深度。各位請幫幫忙吧,急

2021-08-25 05:10:58 字數 1135 閱讀 2169

1樓:

#include

#include

#define maxsize 100

typedef char datatype;

typedef struct node /*二叉樹結點型別*/

bitree;

bitree *q[maxsize]; /*用於建立二叉樹*/

bitree *creatree(); /*函式宣告*/

int depth(bitree *);

void print(bitree *);

void print1(bitree *);

void print3(bitree *);

int main() /*主函式*/

while((ch!='c') && (ch!='c'));

system("cls");

} return 1;

}bitree *creatree()/*建立二叉樹*/

s->data = ch;

s->lchild = null;

s->rchild = null;

}rear++;

q[rear] = s; /*q[rear]指向新分配的節點,q[front]指向上一個的節點*/

if(rear == 1)

root = s; /*s為根*/

else

ch = getchar();

}return root;

}void print(bitree *t) /*先序形式輸出二叉樹*/

else

return;

}print2(bitree *t)/*中序遞迴遍歷二叉樹*/

else

return;

}void print3(bitree *t) /*後序形式輸出二叉樹*/

else

return;

} int depth(bitree *t) /*求二叉樹深度的演算法*/}

2樓:

與非遞迴遍歷二叉樹類似,多維護一個計數,入棧+1,出棧-1,到葉子節點,比較記錄最大長度。用手機回的,沒法寫**,希望對你有幫助。

如何用C實現二叉樹的前中後序遍歷非遞迴演算法最好的是模組整合的

string.prototype.sub function n 怎樣實現二叉樹的前序遍歷的非遞迴演算法 資料結構試驗 用c語言 建立一棵二叉樹,並用遞迴或者非遞迴的演算法分別用先序。中序和後序遍歷 謝謝 define len sizeof struct tree define null 0 incl...

pascal中二叉樹遍歷

這是noi的教材的,我也沒花多少時間去看。我先複製給你吧。二叉樹的遍歷 在二叉樹的應用中,常常要求在樹中查詢具有某種特徵的結點,或者對全部結點逐一進行某種處理,這就是二叉樹的遍歷問題。所謂二叉樹的遍歷是指按一定的規律和次序訪問樹中的各個結點,而且每個結點僅被訪問一次。訪問 的含義很廣,可以是對結點作...

某二叉樹的中序遍歷為CBADE,後序遍歷序列為CBEDA,則前序遍歷序列為

某二叉樹的中序遍歷為cbade,後序遍歷序列為cbeda,則前序遍歷序列為abcde。中序遍歷 訪問根節點在左右子樹之間,即左 根 右。後序遍歷 訪問根結點在源左右子樹之後,即左 右 根。由定義可以知道 後序遍歷中最後一個就是樹根結點,即a結點。中序遍歷的根節點前面的節點均為左子樹的節點,所以左子樹...