xingkongyun
星空隕的程序小站
C++博客
首頁
新隨筆
聯系
聚合
管理
隨筆 - 8 文章 - 26 trackbacks - 0
<
2025年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆檔案
2009年12月 (1)
2009年9月 (1)
2009年4月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (2)
2008年9月 (1)
文章分類
C++語言(6)
Directx(1)
STL(2)
VC++
Windows編程(4)
操作系統(4)
數據結構(10)
文章檔案
2008年11月 (1)
2008年10月 (3)
2008年9月 (10)
2008年7月 (1)
2008年6月 (13)
相冊
圖示
C++語言
C++的羅浮宮
搜索
最新評論
1.?re: 卸載遠程線程中的DLL
水平很高,學習了。
--王小亮
2.?re: 卸載遠程線程中的DLL
評論內容較長,點擊標題查看
--疑問
3.?re: NASM 與 VC 混合編程的小結
收下了
--5545645
4.?re: VC++內聯匯編(MSDN相關內容完整翻譯)
謝謝
--5545645
5.?re: 安全密碼框的設計
評論內容較長,點擊標題查看
--徐胖子
閱讀排行榜
1.?VC++內聯匯編(MSDN相關內容完整翻譯)(9281)
2.?保護模式與實模式的切換(8040)
3.?安全密碼框的設計(4981)
4.?NASM 與 VC 混合編程的小結(3927)
5.?SYSENTER指令相關(大段的轉載-_-)(3634)
評論排行榜
1.?通過虛函數表訪問私有虛函數(10)
2.?安全密碼框的設計(8)
3.?保護模式與實模式的切換(4)
4.?VC++內聯匯編(MSDN相關內容完整翻譯)(1)
5.?NASM 與 VC 混合編程的小結(1)
單向帶頭結點循環鏈表實現
1
1
#ifndef LIST_H
2
#define
LIST_H
3
#include
<
iostream
>
4
//
鏈表節點
5
template
<
class
T
>
6
class
ListNode
7
{
8
public
:
9
ListNode(ListNode
<
T
>*
nextnode
=
0
,
const
T
&
val
=
T())
10
{
11
data
=
val;
12
next
=
nextnode;
13
}
14
public
:
15
T data;
16
ListNode
<
T
>
*
next;
17
18
}
;
19
20
//
鏈表實現
21
template
<
class
T
>
22
class
List
23
{
24
25
public
:
26
List();
27
virtual
~
List();
28
void
Insert_Front(
const
T
&
e);
//
向表頭插入節點
29
void
Insert_End(
const
T
&
e);
//
向表尾插入節點
30
ListNode
<
T
>*
Find(
const
T
&
e);
//
查找指定節點
31
bool
Delete(
const
T
&
e);
//
刪除指定節點
32
List
<
T
>&
Delete_All();
//
刪除除了頭結點以外的所有節點
33
bool
IsEmpty();
//
測試鏈表是否為空
34
bool
Size()
const
{
return
size;}
//
返回鏈表中的節點數目
35
void
OutPut();
36
37
private
:
38
ListNode
<
T
>*
front,
*
rear,
*
head;
//
頭指針與尾指針
39
int
size;
//
鏈表元素節點數目
40
}
;
41
42
43
44
45
//
---------------------------------------------------------------------
46
template
<
class
T
>
47
List
<
T
>
::
~
List()
48
{
49
Delete_All();
50
delete head;
51
52
}
53
//
---------------------------------------------------------------------
54
template
<
class
T
>
55
List
<
T
>
::List()
56
{
57
//
構造頭接點
58
head
=
new
ListNode
<
T
>
();
59
front
=
rear
=
head;
60
head
->
next
=
head;
61
}
62
63
//
---------------------------------------------------------------------
64
template
<
class
T
>
65
void
List
<
T
>
::Insert_Front(
const
T
&
e)
66
{
67
ListNode
<
T
>
*
NewNode
=
new
ListNode
<
T
>
(
0
,e);
68
if
(front
->
next
==
head)
//
如果鏈表為空
69
{
70
71
front
->
next
=
NewNode;
72
NewNode
->
next
=
head;
73
rear
=
NewNode;
74
}
75
else
//
鏈表不為空
76
{
77
NewNode
->
next
=
front
->
next;
78
front
->
next
=
NewNode;
79
}
80
++
size;
81
}
82
//
---------------------------------------------------------------------
83
template
<
class
T
>
84
void
List
<
T
>
::Insert_End(
const
T
&
e)
85
{
86
ListNode
<
T
>
*
NewNode
=
new
ListNode
<
T
>
(
0
,e);
87
if
(front
->
next
==
head)
//
如果鏈表為空
88
{
89
90
front
->
next
=
NewNode;
91
NewNode
->
next
=
head;
92
rear
=
NewNode;
93
}
94
else
//
鏈表不為空
95
{
96
rear
->
next
=
NewNode;
97
NewNode
->
next
=
head;
98
rear
=
NewNode;
99
100
}
101
++
size;
102
}
103
//
---------------------------------------------------------------------
104
template
<
class
T
>
105
ListNode
<
T
>*
List
<
T
>
::Find(
const
T
&
e)
106
{
107
head
->
data
=
e;
108
ListNode
<
T
>
*
move
=
front
->
next;
109
while
(move
->
data
!=
e)
110
{
111
move
=
move
->
next;
112
}
113
114
if
(move
==
front)
return
NULL;
115
else
116
return
move;
117
}
118
119
//
---------------------------------------------------------------------
120
template
<
class
T
>
121
bool
List
<
T
>
::Delete(
const
T
&
e)
122
{
123
head
->
data
=
e;
124
ListNode
<
T
>
*
move
=
front
->
next;
125
ListNode
<
T
>
*
pmove
=
head;
126
while
(move
->
data
!=
e)
127
{
128
pmove
=
move;
129
move
=
move
->
next;
130
}
131
if
(move
==
head)
return
false
;
//
未找到節點
132
pmove
->
next
=
move
->
next;
133
if
(move
==
rear)
//
如果為尾節點則修改尾指針
134
rear
=
pmove;
135
delete move;
136
return
true
;
137
}
138
139
//
---------------------------------------------------------------------
140
template
<
class
T
>
141
void
List
<
T
>
::OutPut()
142
{
143
ListNode
<
T
>
*
move
=
front
->
next;
144
while
(move
!=
head)
145
{
146
cout
<<
move
->
data
<<
"
"
;
147
move
=
move
->
next;
148
}
149
cout
<<
endl;
150
}
151
//
---------------------------------------------------------------------
152
template
<
class
T
>
153
List
<
T
>&
List
<
T
>
::Delete_All()
154
{
155
ListNode
<
T
>
*
movenext,
*
move
=
front
->
next;
156
157
while
(move
!=
head)
158
{
159
movenext
=
move
->
next;
160
delete move;
161
move
=
movenext;
162
}
163
front
=
rear
=
head;
164
head
->
next
=
head;
165
166
return
*
this
;
167
}
168
//
---------------------------------------------------------------------
169
template
<
class
T
>
170
bool
List
<
T
>
::IsEmpty()
171
{
172
173
if
(head
->
next
=
head)
return
true
;
174
else
175
return
false
;
176
}
177
#endif
posted on 2008-09-18 20:54
楊彬彬
閱讀(1744)
評論(0)
編輯
收藏
引用
所屬分類:
數據結構
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
循環隊列實現
數據結構棧簡單實現(基于鏈表)
棧結構簡單實現(基于數組)
單向帶頭結點循環鏈表實現
關于紅黑樹(r-b樹)的相關資料
二叉搜索樹實現
二叉樹實現
最大高度優先左高樹(HBLT)實現
最大堆實現
鏈表類---轉載
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Copyright ©2025 楊彬彬 Powered by:
博客園
模板提供:
滬江博客
久久精品免费一区二区
|
97超级碰碰碰碰久久久久
|
国产福利电影一区二区三区久久老子无码午夜伦不
|
久久电影网2021
|
久久精品蜜芽亚洲国产AV
|
久久中文字幕人妻丝袜
|
久久久亚洲裙底偷窥综合
|
久久综合久久综合亚洲
|
狠狠色丁香婷婷久久综合五月
|
综合久久一区二区三区
|
2021国内精品久久久久久影院
|
久久精品国产2020
|
天天躁日日躁狠狠久久
|
www久久久天天com
|
国产成人99久久亚洲综合精品
|
精品人妻伦一二三区久久
|
久久无码人妻精品一区二区三区
|
久久久久噜噜噜亚洲熟女综合
|
中文字幕亚洲综合久久菠萝蜜
|
亚洲AV无码久久精品狠狠爱浪潮
|
99久久99这里只有免费费精品
|
一级做a爱片久久毛片
|
久久99精品久久久久久9蜜桃
|
亚洲国产成人精品女人久久久
|
久久久久婷婷
|
欧美日韩精品久久久免费观看
|
久久永久免费人妻精品下载
|
伊人久久精品线影院
|
国产69精品久久久久观看软件
|
97精品伊人久久久大香线蕉
|
国产精品亚洲综合专区片高清久久久
|
99久久精品免费国产大片
|
区久久AAA片69亚洲
|
麻豆精品久久久一区二区
|
无码人妻少妇久久中文字幕
|
一本久久a久久精品vr综合
|
久久亚洲国产午夜精品理论片
|
久久综合综合久久狠狠狠97色88
|
日本精品久久久久影院日本
|
AV无码久久久久不卡网站下载
|
久久最新免费视频
|