linklist.h標頭檔案
typedef
struct node
node;
typedef node* linklist;
//初始化函式
void
initlist
(linklist plist)
;//頭插
bool insert_head
(linklist plist,
int val)
;//尾插
bool insert_tail
(linklist plist,
int val)
;//在plist中查詢關鍵字key,找到返回下標,失敗返回null
node*
search
(linklist plist,
int key)
;//判空
bool isempty
(linklist plist)
;//刪除plist中的第乙個key
bool deleteval
(linklist plist,
int key)
;//獲取資料長度
intgetlength
(linklist plist)
;//輸出所有資料
void
show
(linklist plist)
;//銷毀動態記憶體
void
destroy
(linklist plist)
;//單鏈表逆置
void
reverse
(linklist plist)
;
函式的具體實現:
linklist.cpp檔案
#include
#include
#include
#include
"linklist.h"
**函式的具體實現:*
*/*初始化函式*/
void
initlist
(linklist plist)
/*頭插*/
bool insert_head
(linklist plist,
int val)
//申請乙個新節點
node* p =
(node*
)malloc
(sizeof
(node));
p->data = val;
//將新節點插入鍊錶
p->next = plist->next;
plist->next = p;
return true;
}/*尾插*/
bool insert_tail
(linklist plist,
int val)
//將新節點插入鍊錶
p->next = plist->next;
plist->next = p;
return true;
}/*在plist中查詢關鍵字key,找到返回指標,失敗返回null*/
node*
search
(linklist plist,
int key)
p = p->next;
}return
null;}
/*判空*/
bool isempty
(linklist plist)
/*查詢前驅節點,找到返回指標,失敗返回null*/
static node*
searchprio
(linklist plist,
int key)
}return
null;}
/*刪除plist中的第乙個key*/
bool deleteval
(linklist plist,
int key)
//將p從鍊錶中剔除
node* q = p->next;
//q指向要刪除的節點
p->next = q->next;
free
(q);
q =null
;return true;
}/*獲取資料長度*/
intgetlength
(linklist plist)
return count;
}/*輸出所有資料*/
void
show
(linklist plist)
printf
("\n");
}/*銷毀動態記憶體*/
void
destroy
(linklist plist)
plist->next =
null;}
/*單鏈表逆置*/
void
reverse
(linklist plist)
}
資料結構之單鏈表
date 08 07 06 descript 單鏈表的實現與應用 public class linlist public node gethead 定位函式 public void index int i throws exception if i 1 current head.next int j...
資料結構之單鏈表
鍊錶 儲存結構的一種,包含兩個部分,資料域和指標域,相對於順序儲存結構來說,插入和刪除的演算法時間複雜度只為o 1 定義 定義 typedef struct node linklist linklist,指標指向每乙個元素 typedef struct nodenode 以下為簡單的c語言實現 in...
資料結構之單鏈表
由於順序表再插入或者刪除時需要移動大量資料,並且如果表比較大,會比較難分配連續的儲存空間導致儲存資料失敗。因此可以採用鍊錶結構,鍊錶結構是一種動態儲存分配的結構形式,可以根據需要動態的申請所需的儲存單元。鍊錶又分為單鏈表,雙向鍊錶,以及單迴圈鍊錶,多重鏈的迴圈鍊錶。本文先介紹單鏈表。典型的單鏈表結構...