#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出發到任意...