2019遼寧省資料庫期末考試入門

2023-01-01 15:54:01 字數 1676 閱讀 5573

1、證明由二叉樹的中序序列和後序序列,也可以唯一確定一棵二叉樹。

當n=1時,只有乙個根結點,由中序序列和後序序列可以確定這棵二叉樹。

設當n=m-1時結論成立,現證明當n=m時結論成立。

設中序序列為s1,s2,…,sm,後序序列是p1,p2,…,pm。因後序序列最後乙個元素pm是根,則在中序序列中可找到與pm相等的結點(設二叉樹中各結點互不相同)si(1≤i≤m),因中序序列是由中序遍歷而得,所以si是根結點,s1,s2,…,si-1是左子樹的中序序列,而si+1,si+2,…,sm是右子樹的中序序列。

若i=1,則s1是根,這時二叉樹的左子樹為空,右子樹的結點數是m-1,則和可以唯一確定右子樹,從而也確定了二叉樹。

若i=m,則sm是根,這時二叉樹的右子樹為空,左子樹的結點數是m-1,則和唯一確定左子樹,從而也確定了二叉樹。

最後,當1可唯一確定二叉樹的左子樹,由和

可唯一確定二叉樹的右子樹 。

2、設t是一棵滿二叉樹,編寫乙個將t的先序遍歷序列轉換為後序遍歷序列的遞迴演算法。

3、程式設計實現單鏈表的就地逆置。

23.在陣列 a[1..n]中有n個資料,試建立乙個帶有頭結點的迴圈鍊錶,頭指標為h,要求鏈中資料從小到大排列,重複的資料在鏈中只儲存乙個.

4、兩棵空二叉樹或僅有根結點的二叉樹相似;對非空二叉樹,可判左右子樹是否相似,採用遞迴演算法。

int similar(bitree p,q) //判斷二叉樹p和q是否相似

//結束similar

5、因為後序遍歷棧中保留當前結點的祖先的資訊,用一變數儲存棧的最高棧頂指標,每當退棧時,棧頂指標高於儲存最高棧頂指標的值時,則將該棧倒入輔助棧中,輔助棧始終儲存最長路徑長度上的結點,直至後序遍歷完畢,則輔助棧中內容即為所求。

void longestpath(bitree bt)//求二叉樹中的第一條最長路徑長度

//沿左分枝向下

if(tag[top]==1) //當前結點的右分枝已遍歷

//保留當前最長路徑到l棧,記住最高棧頂指標,退棧

} else if(top>0) //沿右子分枝向下

}//while(p!=null||top>0)

}//結束longestpath

6、設t是給定的一棵二叉樹,下面的遞迴程式count(t)用於求得:二叉樹t中具有非空的左,右兩個兒子的結點個數n2;只有非空左兒子的個數nl;只有非空右兒子的結點個數nr和葉子結點個數n0。n2、nl、nr、n0都是全域性量,且在呼叫count(t)之前都置為0.

typedef struct node

node;

int n2,nl,nr,n0;

void count(node *t)

26.樹的先序非遞迴演算法。

void example(b)

btree *b;

if (p->lchild!=null)

(3)___; (4)__;

}}}}

7、假設k1,…,kn是n個關鍵詞,試解答:

試用二叉查詢樹的插入演算法建立一棵二叉查詢樹,即當關鍵詞的插入次序為k1,k2,…,kn時,用演算法建立一棵以llink / rlink 鏈結表示的二叉查詢樹。

8、假設k1,…,kn是n個關鍵詞,試解答:

試用二叉查詢樹的插入演算法建立一棵二叉查詢樹,即當關鍵詞的插入次序為k1,k2,…,kn時,用演算法建立一棵以llink / rlink 鏈結表示的二叉查詢樹。

2019遼寧省資料庫入門入門

1 陣列a和b的元素分別有序,欲將兩陣列合併到c陣列,使c仍有序,應將a和b拷貝到c,只要注意a和b陣列指標的使用,以及正確處理一陣列讀完資料後將另一陣列餘下元素複製到c中即可。void union int a,b,c,m,n 整型陣列a和b各有m和n個元素,前者遞增有序,後者遞減有序,本演算法將a...

2019遼寧省資料庫考試含答案入門

1 假設以i和o分別表示入棧和出棧操作。棧的初態和終態均為空,入棧和出棧的操作序列可表示為僅由i和o組成的序列,稱可以操作的序列為合法序列,否則稱為非法序列。15分 1 下面所示的序列中哪些是合法的?a.ioiioioo b.iooioiio c.iiioioio d.iiiooioo 2 通過對 ...

07 08 1 資料庫原理期末考試試卷A

仲愷農業技術學院試卷 資料庫原理 2007至 2008 學年度第 1 學期期末 a 卷 專業班級姓名學號 考生注意 答案須寫在答題紙上,並註明題號,考試結束後將試卷連同答題紙一齊交回 一 單項選擇題 本大題共12小題,每題2分,共24分 在每小題列出的四個備選項中只有乙個是符合題目要求的,請將其 填...