第三章第二小節 鍊錶實現表

2021-10-25 09:42:13 字數 2101 閱讀 7727

用鏈式結構來實現表結構的各種操作

typedef

int element;

typedef

struct node* ptrnode;

typedef ptrnode position;

typedef ptrnode list;

//函式宣告

list createlist()

;// 建立乙個鍊錶

void

makeempty

(list list)

;// 刪除乙個鍊錶

intisempty

(list list)

;//測試鍊錶是否為空表

intislast

(position p, list list)

;//測試當前節點是不是鍊錶的結尾

position find

(element x, list list)

;// 查詢乙個元素,返回表元素的位置。

position findprevious

(element x,list list)

;// 查詢含有x的表元的前驅元p

void

printlist

(list list)

;// 列印鍊錶

void

deletelist

(element x,list list)

;// 刪除乙個元素

void

insertlist

(element x,list list)

;// 鍊錶的插入

position header

(list list)

;//返回表頭節點

position first

(list list)

;// 返回第乙個節點

position advance

(position p)

;// 返回下乙個節點

element retrieve

(position p)

;// 返回節點的值

struct node

;

//建立乙個空表,並返回表頭元素

list createlist()

//判斷表是否為空

intisempty

(list list)

//判斷節點是否為尾節點

intislast

(position p, list list)

//插入操作,鍊錶資料從小到大排列

void

insertlist

(element x, list list)

t = t->next;

t1 = t1->next;

} p->next = t->next;

t->next = p;

}// 列印鍊錶

void

printlist

(list list)

}//刪除乙個鍊錶

void

makeempty

(list list)

}//查詢乙個元素,返回元素的位置

position find

(element x, list list)

return p;

}//查詢含有x的表元的前驅元p

position findprevious

(element x, list list)

return p;

}//刪除乙個元素

void

deletelist

(element x, list list)

}//返回表頭節點

position header

(list list)

//返回第乙個節點

position first

(list list)

//返回下乙個節點

position advance

(position p)

//返回節點的值

element retrieve

(position p)

第三章 鍊錶

redis中除了鍊錶鍵之外,發布與訂閱 慢查詢 監視器等功能也用到了鍊錶,redis伺服器本身還使用鍊錶來儲存多個客戶端的狀態資訊,以及使用鍊錶來構建客戶端輸出緩衝區。鍊錶節點定義 typedef struct listnode listnode 鍊錶型別定義 無環 表頭節點的prev指標和表尾節點...

第三章 線性表(2 鍊錶)

單鏈表結構與順序儲存結構優缺點 簡單的對單鏈表結構和順序儲存結構做對比 儲存分配方式 時間效能 空間效能 1.順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。2.單鏈表採用鏈式儲存結構,用一組任意的儲存單元存放線性表的元素。1.查詢 順序儲存結構 o 1 單鏈表 o n 2.查詢和刪除 順...

第三章 結構表

線性表 零個或多個相同特性的資料元素的有限序列。首先它是乙個序列,元素之間是有順序 的,第乙個元素無前驅,最後乙個元素無後繼,其他的都有且只有乙個前驅和後繼。而所有元素按這種1對1的鄰接關係構成的整體就是線性表。線性表的儲存結構 線性表有順序表和鏈式兩類儲存結 構 一 順序表 順序表就是把線性表中的...