實現二叉樹的各種基本運算的演算法

2021-08-11 05:15:35 字數 1338 閱讀 9182



#include

#include

#define maxsize 100

typedef char elemtype;

typedef struct node

btnode;

void createbtnode(btnode *&b,char *str)  //由str串建立二叉鏈}}

j++;

ch=str[j];}}

btnode *findnode(btnode *b,elemtype x) //返回data域為x的節點指標

}btnode *lchildnode(btnode *p) //返回*p節點的左孩子節點指標

btnode *rchildnode(btnode *p) //返回*p節點的右孩子節點指標

int btnodedepth(btnode *b) //求二叉樹b的深度

}void dispbtnode(btnode *b) //以括號表示法輸出二叉樹}}

int btwidth(btnode *b)  //求二叉樹b的寬度

qu[maxsize];  //定義順序非迴圈佇列

int front,rear;       //定義隊首和隊尾指標

int lnum,max,i,n;

front=rear=0;       //置隊列為空隊

if (b!=null)

if (b->rchild!=null)   //右孩子入隊

}max=0;lnum=1;i=1;

while (i<=rear)

lnum=qu[i].lno;

if (n>max) max=n;

}return max;

}else

return 0;

}int nodes(btnode *b) //求二叉樹b的節點個數

}int leafnodes(btnode *b) //求二叉樹b的葉子節點個數

}void destroybtnode(btnode *&b)

}int main()

printf("\n");

printf("  (3)二叉樹b的深度:%d\n",btnodedepth(b));

printf("  (4)二叉樹b的寬度:%d\n",btwidth(b));

printf("  (5)二叉樹b的節點個數:%d\n",nodes(b));

printf("  (6)二叉樹b的葉子節點個數:%d\n",leafnodes(b));

printf("  (7)釋放二叉樹b\n");

destroybtnode(b);

return 0;

}

二叉樹各種基本運算的演算法

檔名 btree.cpp include include define maxsize 100 typedef char elemtype typedef struct node btnode void createbtree btnode b,char str 建立二叉樹 j ch str j v...

二叉樹的基本運算

今天資料結構實驗課,做實驗,二叉樹的基本運算,題目要求挺長的,上課坐著沒事幹,寫了一點,放這以後還能看看。呵呵 題目要求 問題描述 建立一棵二叉樹,試程式設計實現二叉樹的如下基本操作 1.按先序序列構造一棵二叉鍊錶表示的二叉樹t 2.對這棵二叉樹進行遍歷 先序 中序 後序以及層次遍歷,分別輸出結點的...

二叉樹的基本運算

編寫乙個程式實現二叉樹的基本功能 1 使用者輸入字串建立二叉樹,a b d,e h j,k l,m n c f,g i 2 1 實現二叉樹的各種遍歷。包括先序遍歷 中序遍歷 後序遍歷的歸和非遞迴演算法 以及層次遍歷。2 要求能查詢任一結點在某種遍歷序列中的前驅和後繼。3 查詢輸出從根結點a出發到任意...