靜態鍊錶實現的兩種方法

2021-06-20 16:16:26 字數 1079 閱讀 4997

物件的多陣列表示

用三個陣列next key prev 分別表示鍊錶的後繼 資料 前驅。

以下的**分別展示了基本的字典操作和如何申請分配記憶體。

//由於有些語言不支援指標,所以我們可以用多陣列表示的靜態雙鏈表。

#include #include #include using namespace std;

#define max 10//於表頭的前驅和表尾的後繼都不存放元素,所以實際能存放的有效元素個數比max少2個

#define null -1

int head=null,free=0;

int j=0;

struct list

;int isin(int *num,int index,int pat)//生成的隨機數pat是否已經存在

while(1)

}return result;

}//鍊錶初始化

void initialization(struct list &t,int*num)

cout<

物件的單陣列表示

用乙個陣列即可表示雙鏈表,這種表示法比較靈活,因為它允許不同長度的物件儲存於同一陣列中。一般地我們考慮的資料結構多是由同構的元素構成,因此採用物件的多陣列表示法足夠滿足我們的需求。

以下的**分別展示了基本的字典操作和如何申請分配記憶體。

//我們用key next prev表示雙鏈表,如果array[i-1]為key,那麼array[i]為next,array[i+1]為prev。

#include #include #include using namespace std;

#define max 120

#define null -1

int head=0,free=0;

int isin(int *num,int index,int pat)//生成的隨機數pat是否已經存在

{ int i=0;

for(i=0;i



用兩種方法實現棧 順序表和煉表

棧是一種先進後出的資料結構,棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。棧裡面常用的函式有push...

反轉鍊錶 清晰易懂的兩種方法

反轉乙個單鏈表。如下示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null public class listnode 一 迭代法 注意觀察示例 1 2 3 4 5 null的反轉可以看成 null 1 2 3 4 5。會發現鍊錶的反轉基本上就是箭頭的方向的反轉,即節點前驅和後...

鍊錶排序的兩種實現方法

本程式演示鍊錶的兩種排序方法 當然還可以其他的一些排序方法 比如選擇法 但是只要搞懂了鍊錶的連線,插入方法 其他排序方法都易懂 include using namespace std struct list list creat 建立鍊錶的方式有點奇怪,可是不想改了,呵呵 p1 next null ...