鍊錶是一種動態資料結構,它的特點是用一組任意的儲存單元(可以是連續的,也可以是不連續的)存放資料元素。
鍊錶中每乙個元素成為「結點」,每乙個結點都是由資料域和指標域組成的,每個結點中的指標域指向下乙個結點。head是「頭指標」,表示鍊錶的開始,用來指向第乙個結點,而最後乙個指標的指標域為null(空位址),表示鍊錶的結束。
鍊錶很基礎,很重要!!!
標頭檔案:函式的宣告,
#pragma once
#include
#include
#include
using
namespace std;
typedef
int elemtype;
class
node
;typedef node *linklist;
//單鏈表的整表建立:頭插法
void
creat_headlist
(linklist &l,
int n)
;//建立鍊錶:尾插法
void
creat_taillist
(linklist &l,
int n)
;//判空
bool
isempty
(linklist l)
;//獲取長度
intlen_list
(linklist l)
;//讀取第i個元素
intgetelem
(linklist l,
int i, elemtype &e)
;//刪除第i個元素,並用e返回
intdele_list
(linklist &l,
int i, elemtype &e)
;//列印鍊錶
void
show_list
(linklist l)
;//在第i個元素插入e
intinsert_list
(linklist &l,
int i, elemtype e)
;//清空鍊錶
void
clear_list
(linklist &l)
;
函式的定義:
#include
"linklist.h"
//單鏈表的整表建立:頭插法
void
creat_headlist
(linklist &l,
int n)
}//建立鍊錶:尾插法
void
creat_taillist
(linklist &l,
int n)
r->next =
null;}
//判空
bool
isempty
(linklist l)
else
}//獲取長度
intlen_list
(linklist l)
return len;}}
//讀取第i個元素
intgetelem
(linklist l,
int i, elemtype &e)
if(i < j ||
!p) e = p-
>data;
return1;
}//刪除第i個元素,並用e返回
intdele_list
(linklist &l,
int i, elemtype &e)
else
e = p-
>next-
>data;
q = p-
>next;
p->next = q-
>next;
delete q;
return0;
}}//列印鍊錶
void
show_list
(linklist l)
cout << endl;
}else
}//在第i個元素插入e
intinsert_list
(linklist &l,
int i, elemtype e)
else
p->next = q-
>next;
q->next = p;
}return1;
}//清空鍊錶
void
clear_list
(linklist &l)
l->next =
null
;//頭結點指標為空
}
main函式測試:
#include
"鍊錶定義.h"
intmain()
c 單鏈表基本操作
下午沒事,看資料結構。想到自畢業以後,都沒有寫過這些東西了。寫個鍊錶基本操作,還沒完全測試。includeusing namespace std node 節點 struct node int data node p 單鏈表 class link 通過陣列夠造 link int arr,int le...
C 單鏈表基本操作
include using namespace std struct node class list 建立帶頭結點的鍊錶,head next null 表示鍊錶為空,只有乙個頭結點 void creatlist1 int n 頭插入法建立鍊錶 void creatlist2 int n 尾插入法建立...
C 單鏈表基本操作
鍊錶一直是面試的高頻題,今天先總結一下單鏈表的使用,下節再總結雙向鍊錶的。本文主要有單鏈表的建立 插入 刪除節點等。1 概念 單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 指標,元素就是儲存資料的儲存單元,指標就是...