編寫乙個程式,實現二叉樹的序列化和反序列化,完成以下功能:
(1) 建立二叉鏈b。
(2) 採用括號表示輸出二叉鏈b。
(3) 對二叉鏈b進行先序遍歷,產生先序序列化序列str。
(4) 輸出先序序列化序列str。
(5) 由str構建二叉鏈b1(反序列化)。
(6) 採用括號表示輸出二叉鏈b1。
(7) 銷毀二叉鏈b和b1。
#include
#include
"stdio.h"
#include
"malloc.h"
using
namespace std;
typedef
struct
sqstring;
void
strassign
(sqstring &s,
char cstr)
//生成串
s.length=i;
}void
strcopy
(sqstring &s,sqstring t)
//複製串
s.length=t.length;
}bool
strequal
(sqstring s,sqstring t)
//判斷串相等
}return same;
}sqstring concat
(sqstring s,sqstring t)
//串的連線
for(i=
0;i)return str;
}void
dispstr
(sqstring s)
//輸出串
cout
char elemtype;
typedef
struct node
btnode;
void
createbtree
(btnode *
&b,char
*str)
//建立二叉樹
else}}
j++; ch=str[j];}
}void
destroybtree
(btnode*
&b)//銷毀二叉樹
}btnode *
findnode
(btnode *b,
char x)
//查詢結點
} btnode *
lchildnode
(btnode *p)
//找左孩子結點
btnode *
rchildnode
(btnode *p)
//找右孩子結點
intbtheight
(btnode *b)
//求高度
}void
dispbtree
(btnode *b)
//輸出二叉樹 }}
int i=0;
sqstring preorderseq
(btnode*b)
str.data[0]
=b->data;
str.length=1;
leftstr=
preorderseq
(b->lchild)
; str1=
concat
(str,leftstr)
; rightstr=
preorderseq
(b->rchild)
; str=
concat
(str1,rightstr)
;return str;
}btnode *
createpreseq
(sqstring str)
intmain()
僅作留檔。 實驗六 最小代價生成樹
一 實驗名稱 最小代價生成樹 二 實驗目的 1.掌握貪心演算法解決問題的思想和一般過程,2.學會使用普里姆演算法解決實際問題。三 實驗內容 完善下列程式,並回答問題。1 include2 define g node num 6 結點個數 3 define infty 65535 4 template...
實驗五 樹與二叉樹的實驗二
一 實驗目的 1 熟練理解樹和二叉樹的相關概念,掌握的儲存結構和相關操作實現 2 掌握樹的順序結構的實現 3 學會運用樹的知識解決實際問題 二 實驗內容 1 自己確定乙個二叉樹 樹結點型別 數目和結構自定 利用鏈式儲存結構方法儲存。實 現樹的構造,並完成 1 用前序遍歷 中序遍歷 後序遍歷輸出結點資...
實驗五 樹和二叉樹實驗
三 實驗內容 1.自己設計乙個二叉樹,深度最少為4,請遞迴演算法分別用前序 中序 後序遍歷輸出樹結點。ifndef tree h define tree h struct binode class tree tree void preorder private binode root binode ...