第十一周專案1

2021-07-25 09:42:31 字數 3026 閱讀 5967

* 輸入描述: 無

* 輸出描述:**描述中輸出的內容

標頭檔案:

#ifndef btree_h_included

#define btree_h_included

#define maxsize 100

typedef char elemtype;

typedef struct node

btnode;

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

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); //以括號表示法輸出二叉樹

void destroybtnode(btnode *&b);  //銷毀二叉樹

#endif // btree_h_included

原始檔:

#include

#include

#include "btree.h"

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)  //以括號表示法輸出二叉樹}}

void destroybtnode(btnode *&b)   //銷毀二叉樹

}main函式:

#include

#include

#include "btree.h"

btnode *createbt1(char *pre,char *in,int n)

/*pre存放先序序列,in存放中序序列,n為二叉樹結點個數,

本演算法執行後返回構造的二叉鏈的根結點指標*/

tbtnode *pre;                       //全域性變數

void thread(tbtnode *&p)

else p->ltag=0;

if (pre->rchild==null)      //後繼線索

else pre->rtag=0;

pre=p;

thread(p->rchild);          //右子樹線索化}}

tbtnode *creathread(tbtnode *b)     //中序線索化二叉樹

#define n 50        //葉子結點數

#define m 2*n-1     //樹中結點總數

//哈夫曼樹的節點結構型別

typedef struct

htnode;

//每個節點哈夫曼編碼的結構型別

typedef struct

hcode;

//構造哈夫曼樹

void createht(htnode ht,int n)

{int i,k,lnode,rnode;

double min1,min2;

for (i=0; i<2*n-1; i++)         //所有結點的相關域置初值-1

ht[i].parent=ht[i].lchild=ht[i].rchild=-1;

for (i=n; i<2*n-1; i++)         //構造哈夫曼樹

{min1=min2=32767;            //lnode和rnode為最小權重的兩個結點位置

lnode=rnode=-1;

for (k=0; k<=i-1; k++)

if (ht[k].parent==-1)   //只在尚未構造二叉樹的結點中查詢

心得體會:通過對這四個問題的**的理解之後,我對這四個問題有了更加深刻的了解。相信我會對此越來越在手。

第十一周閱讀專案(1)

問題及 1 閱讀程式,寫出執行結果 include using namespace std class data data private int x class base base private int b1 class derived public base derived private d...

第十一周專案1驗證演算法

define maxsize 100 typedef char elemtype typedef struct node btnode void createbtnode btnode b,char str 由str串建立二叉鏈 btnode findnode btnode b,elemtype x...

第十一周專案1 驗證演算法

問題及 檔名稱 1.cpp 完成日期 2016年11月10日 版本號 v1.0 問題描述 實現二叉樹的層次遍歷演算法,並使用不同測試資料建立二叉樹,進行測試。請利用二叉樹演算法庫。輸入描述 二叉樹字串str 程式輸出 測試結果 btree.h define maxsize 100 typedef c...