節點 應包括資料值 data 以及指向下乙個節點的指標 next。
#include
using namespace std;
typedef int datatype;
//自定義資料型別
class
node
~node()
void
setdata
(datatype tempdata)
datatype getdata()
void
setnext
(node *tempnode)
node*
getnext()
private
://節點資料私有保護
datatype data;
node *next;};
//下接calss linklist
鍊錶類作為主類,對鍊錶中的節點進行操作(增、刪、改、查…)class
linklist
~linklist()
//析構函式,釋放節點}}
void
display()
//測試函式
cout<
} datatype get
(int index)
//返回對應索引位置上的節點值(0~index)
return temp-
>
getdata()
;}void
addathead
(int val)
//從首位置新增節點
head = a;
length++;}
void
addattail
(int val)
else
}void
addatindex
(int index,
int val)
//在索引 index 後插入節點;若在 index 前插入節點,出入引數可以改變為 index-1
else
if(index == length)
//如果索引值等於鍊錶長度,則從尾部插入
else
node *pnext = temphead-
>
getnext()
; node *a =
newnode()
; a-
>
setdata
(val)
; a-
>
setnext
(pnext)
; temphead-
>
setnext
(a);
length++;}
}void
deleteatindex
(int index)
//刪除 index 位置處的節點
else
if(index ==0)
else
if(index == length -
1&& index !=0)
last = temp;
last-
>
setnext
(null)
; delete templast;
length--;}
else
node *pnext = temphead-
>
getnext()
; node *q = pnext;
temphead-
>
setnext
(q->
getnext()
);length--
; delete q;}}
node*
reverselist()
//鍊錶反轉
稍作修改,見下
#include
using namespace std;
typedef char datatype;
//自定義資料型別;int 改為 char
測試int
main()
測試結果
C 實現單鏈表的基本操作
結點類 關鍵處在c語言中用指標來指向下乙個節點,c 是物件導向的,用節點類的乙個屬性 next屬性 來指向下乙個節點物件 public class linknode set private linknodenext public linknodenext set endregion public l...
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 尾插入法建立...