2017 11 24(資料結構)

2021-08-11 06:49:39 字數 1281 閱讀 8135

1.鍊錶的倒數第k個查詢

void search(linklist &l, elemtype k)

else

p = p->next;

}if(count < k)

return

0; else

}}

2.手寫遍歷演算法

void preorder(bitree t)

}

void preorder(bitree t)

else

}}

void levelorder(bitree t)

}

3.字串匹配演算法

4.逆波蘭表示式

中綴表示式轉成字尾表示式(如(a+b)*(c+d)轉換為ab+cd+*

轉換規則:當前字元為變數或者數字,則存入字尾表示式;如果是運算子op,op比操作符棧頂優先順序高則壓入,否則將棧中操作符不斷彈出,直到op的優先順序高於棧頂。

5.二叉搜尋樹

它或者是一棵空樹;或者是具有下列性質的二叉樹:若左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;若右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;左、右子樹也分別為二叉排序樹。若子樹為空,查詢不成功。

可以顯著的改進查詢的效率,查詢乙個資料的了路徑最長不超過樹的深度。

//遞迴實現  

tree_search(x, k):

if x == nil or x.key == k :

return x

if k < x.key

return tree_search(x.left, k)

else

return tree_search(x.right, k)

6.平衡二叉搜尋樹(紅黑樹)

就是若一棵二叉樹的每個左右節點的高度差最多相差1,此二叉樹即是平衡二叉樹。把二叉樹的每個節點的左子樹減去右子樹定義為該節點的平衡因子。二叉平衡樹的平衡因子只能是1、0或者-1。

在二叉搜尋樹的插入和刪除運算中,採用平衡樹的優點是:使樹的結構較好,從而提高查詢運算的速度。缺點是:是插入和刪除運算變得複雜化,從而降低了他們的運算速度。

7.雜湊

雜湊函式

解決衝突

7.排序演算法

插入排序

交換排序

選擇排序

歸併排序

基數排序

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 資料結構演算法

分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...

資料結構 01 資料與資料結構

1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...