2,雙向鍊錶
2.1雙向鍊錶基本框架
typedef
int data;
typedef
struct _node
node;
//結點
typedef
struct doublelist
dulist;
//雙向鍊錶
2.2建立乙個雙向鍊錶dulist*
createdulist()
2.3建立乙個結點//建立乙個結點
node*
createnode
(data data)
newnode->data = data;
return newnode;
}
2.4尾插//尾插
void
push_back
(dulist* list, data data)
2.5頭插//頭插
void
push_front
(dulist* list, data data)
2.6檢視//輸出
void
show_list
(dulist* list)
node* curnode = list->front->next;
while
(curnode!=
null
)printf
("\n");
}
2.7判斷鍊錶是否為空//判斷鍊錶是否為空
#include
bool empty
(dulist* list)
2.8查詢指定元素//查詢指定元素,找到返回結點所在的位置,沒有則放回null
node*
find
(dulist* list, data data)
node* curnode = list->front->next;
while
(curnode!=
null
) curnode = curnode->next;
}return
null
;}
2.9插入//插入
void
insert
(dulist* list, node* iterator, data data)
2.10尾部刪除//尾部刪除
void
pop_back
(dulist* list)
list->tail = list->tail->prev;
//讓尾指標前移一位
free
(list->tail->next)
; list->tail->next =
null
; list->size--
;}
2.11頭部刪除//頭部刪除
void
pop_front
(dulist* list)
node* delnode = list->front->next;
//儲存刪除的結點
list->front->next = delnode->next;
//判斷是不是只有乙個結點,如果只有乙個結點,需要對尾結點進行處理
if(delnode->next!=
null
)else
free
(delnode)
; list->size--
;}
2.12指定元素刪除//指定元素刪除
void
erase_val
(dulist* list, data data)
node* prevnode = delnode->prev;
//儲存上乙個結點
prevnode->next = delnode->next;
delnode->next->prev = prevnode;
free
(delnode)
; list->size--
;}
2.13排序//排序
void
sort
(dulist* list)
for(node* i = list->front->next; i->next!=
null
; i=i->next)}}
}
2.14清除//清除
void
clear
(dulist* list)
while
(list->front->next!=
null
) list->size =0;
}
2.15銷毀
//銷毀
void
destory
(dulist*
* list)
2.16反轉
//反轉
void
reverse
(dulist* list)
node* curnode = list->front->next;
node* prevnode =
null
; node* nextnode =
null
; list->tail = curnode;
while
(curnode!=
null
) list->front->next = prevnode;
prevnode->prev = list->front;
}
2.17求大小int
size
(dulist* list)
Linux學習第五課
vim編輯器 vi編輯器的提公升版 1 使用簡單 2 使用範圍廣 ctrl shift 增大字型 ctrl 縮小字型 三種模式 esc a,i,o 參考記事本 2 命令模式 複製 剪下 貼上 esc 搜尋 3 末行模式 儲存 退出 設定編 輯器環境設定 w 儲存 q 退出 wq 儲存並退出 wq 強...
HTML學習第五課
定義列表的 也叫做描述性列表,定義列表預設為為兩個層次,第一層為列表項標籤 dt 第二層為注釋項標籤 dd dt 和 dd 標籤通常是成對使用的,也可以乙個列表項對應於幾個解釋項,其格式為 第1項 注釋1第二項 注釋2第三項 注釋3 table 標籤定義html 簡單的html 由table 元素以...
C 第五課 迴圈結構
迴圈結構 一 while語句 while語句寫法 while 表示式 語句 作用 反覆執行語句 迴圈體 直至 表示式 不成立。迴圈體為多條語句時,使用復合語句 二 for語句 for語句寫法 for 表示式1 表示式2 表示式3 語句 特別注意迴圈控制變數 就是決定迴圈執行次數的變數 的使用 一定要...