明天考試,今天手寫個單鏈表試試水。
本來以為挺簡單的,沒想到還是寫了兩個小時。一開始打算用模板類結果不太會用瘋狂報錯,最後只能搞個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...