C 單鏈表實現

2021-10-07 16:40:35 字數 1788 閱讀 8212

明天考試,今天手寫個單鏈表試試水。

本來以為挺簡單的,沒想到還是寫了兩個小時。一開始打算用模板類結果不太會用瘋狂報錯,最後只能搞個int型的。

只放**。

和用vector寫的程式對拍過後是正確的。

#include

using

namespace std;

typedef

long

long ll;

class

list

;class

node

//節點類

friend

class

list

;friend ostream &

operator

<<

(ostream &

, list)

;friend list operator+(

const list,

const list);}

;class

list

//鍊錶類

//預設建構函式

~list()

; list (

const list &);

//拷貝建構函式 深拷貝

void

insert

(int x)

;//插入節點

void

del(

int x)

;//刪除節點

void

reverse()

;//逆置

void

display()

;friend ostream &

operator

<<

(ostream &

,const list)

;friend list operator+(

const list,

const list)

;//鍊錶合併};

list::

~list()

tail =0;

}list::

list

(const list &l)

}void list::

insert

(int x)

void list::

del(

int x)

else

}else

}else prev = now, now = now -

> next;}}

void list::

reverse()

swap

(head, tail);}

void list::

display()

}ostream &

operator

<<

(ostream &output,

const list l)

return output;

}list operator+(

const list a,

const list b)

intmain()

cout << l << endl;

//測試資料插入是否正確

int d; cin >> d;

l.del(d)

; cout << l << endl;

//測試資料刪除是否正確

l.reverse()

; cout << l << endl;

//測試逆置是否正確

return0;

}

C 單鏈表實現

1 單向鍊錶 單向鍊錶 include include class cnode 節點類 class clist 鍊錶類 cnode movetrail cnode pnode 移動到尾節點 return ptmp void addnode cnode pnode 新增節點 else m nodesu...

c 實現單鏈表

include include using namespace std typedef int datatype struct linknode 建立乙個節點 class slist void swap slist s slist const slist s head null tail null ...

單鏈表(C實現)

ifndef list h define list h typedef struct node node typedef struct list list initlist int insertlist list l,void data,int size node findnodebykey lis...