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結點。中序遍歷的根節點前面的節點均為左子樹的節點,所以左子樹...