2023年湖南省資料總結基礎

2021-11-01 18:49:33 字數 843 閱讀 8591

1、設有乙個陣列中存放了乙個無序的關鍵序列k1、k

2、…、kn。現要求將kn放在將元素排序後的正確位置上,試編寫實現該功能的演算法,要求比較關鍵字的次數不超過n。

51. 借助於快速排序的演算法思想,在一組無序的記錄中查詢給定關鍵字值等於key的記錄。設此組記錄存放於陣列r[l..

h]中。若查詢成功,則輸出該記錄在r陣列中的位置及其值,否則顯示「not find」資訊。請編寫出演算法並簡要說明演算法思想。

2、設一棵二叉樹的結點結構為 (llink,info,rlink),root為指向該二叉樹根結點的指標,p 和q分別為指向該二叉樹中任意兩個結點的指標,試編寫一演算法ancestor(root,p,q,r),該演算法找到p和q的最近共同祖先結點r。

3、設一棵二叉樹的結點結構為 (llink,info,rlink),root為指向該二叉樹根結點的指標,p 和q分別為指向該二叉樹中任意兩個結點的指標,試編寫一演算法ancestor(root,p,q,r),該演算法找到p和q的最近共同祖先結點r。

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

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

//沿左分枝向下

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

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

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

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

}//結束longestpath

2023年湖南省資料總結基礎

1 對一般二叉樹,僅根據乙個先序 中序 後序遍歷,不能確定另乙個遍歷序列。但對於滿二叉樹,任一結點的左右子樹均含有數量相等的結點,根據此性質,可將任一遍歷序列轉為另一遍歷序列 即任一遍歷序列均可確定一棵二叉樹 void pretopost elemtype pre post,int l1,h1,l2...

2023年湖南省資料總結基礎

1 設有乙個陣列中存放了乙個無序的關鍵序列k1 k2 kn。現要求將kn放在將元素排序後的正確位置上,試編寫實現該功能的演算法,要求比較關鍵字的次數不超過n。51.借助於快速排序的演算法思想,在一組無序的記錄中查詢給定關鍵字值等於key的記錄。設此組記錄存放於陣列r l.h 中。若查詢成功,則輸出該...

2023年湖南省資料總結要領

1 二路插入排序是將待排關鍵字序列r 1.n 中關鍵字分二路分別按序插入到輔助向量d 1.n 前半部和後半部 注 向量d可視為迴圈表 其原則為,先將r l 賦給d 1 再從r 2 記錄開始分二路插入。編寫實現二路插入排序演算法。2 設t是一棵滿二叉樹,編寫乙個將t的先序遍歷序列轉換為後序遍歷序列的遞...