與心靈對話
posts - 195, comments - 34, trackbacks - 0, articles - 1
導航
BlogJava
首頁
新隨筆
聯系
聚合
管理
<
2010年4月
>
日
一
二
三
四
五
六
28
29
30
31
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
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(14)
給我留言
查看公開留言
查看私人留言
隨筆分類
“智能”方向(6)
C++ &VC(18)
Databases(1)
Englisth(1)
Java(23)
matalb相關(8)
WebService(2)
可伸縮視頻編碼(3)
好文章(35)
對話心靈(12)
智慧島(14)
算法編程(20)
隨筆檔案
2011年5月 (1)
2010年9月 (3)
2010年7月 (1)
2010年6月 (2)
2010年5月 (5)
2010年4月 (7)
2010年1月 (2)
2009年12月 (3)
2009年11月 (18)
2009年10月 (15)
2009年9月 (2)
2009年8月 (4)
2009年7月 (5)
2009年6月 (3)
2009年5月 (2)
2009年4月 (4)
2009年3月 (7)
2009年2月 (2)
2009年1月 (3)
2008年12月 (8)
2008年11月 (15)
2008年10月 (4)
2008年9月 (1)
2008年8月 (2)
2008年7月 (2)
2008年6月 (13)
2008年5月 (1)
2008年4月 (1)
2008年3月 (4)
2008年1月 (3)
2007年12月 (2)
2007年11月 (4)
2007年10月 (5)
2007年9月 (3)
2007年8月 (9)
2007年7月 (7)
2007年6月 (8)
2007年5月 (4)
2007年4月 (8)
2006年5月 (1)
文章檔案
2007年4月 (1)
相冊
我的偶像
收藏夾
收藏1
技術基礎
Javaer
Java線程
深度理解圖像blog
技術相關
達人:編程匯總javalet
360個人圖書館
EJB3
Gossip良葛格
java Google資源多
Matrix67一個聰明的人
My Space,My mind 巫曉福
TopLanguage劉未鵬組織
Vincent'sBlog java基礎強人
ye話連篇
我在CSDN的Blog
鄭莎莎
研究方向
石縫間的生命
算法類
acm高人
byvoid.com
byvoidNOIP2000-2007 全部題解
LittleDS/
PKU很多的一個人
POJer
woodfish1988
搜索
最新評論
1.?re: 求數組中最長遞增子序列
這是原創麼?但是如果要輸出LIS的元素..2 3 7 6 8 4 5 9 1的輸出結果不正確吖~怎么改進才可以得到正確的序列呢?
--琉璃囧
2.?re: 不要和愛過的人說狠話!
評論內容較長,點擊標題查看
--nn
3.?re: know and do reading notes
評論內容較長,點擊標題查看
--alex adams
4.?re: MATLAB GUI編程中幾個有用的程序段
Fine
--ncepuyuyu
5.?re: 好歌分享
評論內容較長,點擊標題查看
--Sandy Alex
閱讀排行榜
1.?沉思于《沉思錄》meditations:若干讀后感(6159)
2.?MATLAB GUI編程中幾個有用的程序段(4658)
3.?C++ placement new 用法舉例zz(3815)
4.?最短路徑 之 SPFA算法 zz(2964)
5.?求數組中最長遞增子序列(2930)
評論排行榜
1.?轉:三十人生的,苗人鳳求婚(5)
2.?不要和愛過的人說狠話!(3)
3.?一則笑話,又是關于咱程序員的(2)
4.?zz清華校長送給畢業生的五句話(2)
5.?zz:35歲前成功的12條黃金法則(2)
CSingleList的類實現,可以豐富起來
Posted on 2010-04-16 10:30
小強摩羯座
閱讀(192)
評論(0)
編輯
收藏
所屬分類:
C++ &VC
1
2
3
//
realize a SingleList class
4
/**/
/*
5
實現方法
6
add()
7
add2Head(dd);
8
del
9
lastN
10
length();
11
reverse();//實現單鏈表反轉
12
*/
13
#include
<
iostream
>
14
#include
<
cassert
>
15
#include
<
typeinfo
>
16
17
using
namespace
std;
18
19
#define
DataType int
20
21
class
CSingleList
22
{
23
private
:
24
typedef
struct
Node
25
{
26
DataType data;
27
Node
*
next;
28
}
;
29
Node
*
pHead;
30
31
public
:
32
CSingleList()
33
{
34
pHead
=
NULL;
35
}
36
CSingleList
&
add(DataType data)
37
{
38
if
( pHead
==
NULL)
39
{
40
pHead
=
new
Node;
41
pHead
->
data
=
data;
42
}
43
else
44
{
45
Node
*
p
=
pHead;
46
while
(p
->
next
!=
NULL )
47
{
48
p
=
p
->
next;
49
}
50
Node
*
q
=
new
Node;
51
q
->
data
=
data;
52
q
->
next
=
NULL;
53
p
->
next
=
q;
54
}
55
return
*
this
;
56
}
57
CSingleList
&
add2Head(DataType data)
58
{
59
if
( pHead
==
NULL)
60
{
61
pHead
=
new
Node;
62
assert(pHead);
63
pHead
->
data
=
data;
64
pHead
->
next
=
NULL;
65
}
66
else
67
{
68
Node
*
q
=
new
Node;
69
assert(q);
70
q
->
data
=
data;
71
q
->
next
=
pHead;
72
pHead
=
q;
73
}
74
return
*
this
;
75
}
76
void
print(
const
char
*
note
=
"
"
)
77
{
78
Node
*
p
=
pHead;
79
80
cout
<<
"
----------
"
<<
note
<<
"
---------
"
<<
endl;
81
while
(p
!=
NULL
&&
p
->
next
!=
NULL)
82
{
83
cout
<<
p
->
data
<<
"
,
"
;
84
p
=
p
->
next;
85
}
86
cout
<<
p
->
data
<<
endl;;
87
}
88
int
length()
89
{
90
int
n
=
0
;
91
Node
*
p
=
pHead;
92
while
( p
!=
NULL)
93
{
94
n
++
;
95
p
=
p
->
next;
96
}
97
return
n;
98
}
99
100
CSingleList
&
del(DataType data)
101
{
102
if
( pHead
==
NULL)
return
*
this
;
103
//
數據在在頭結點
104
if
(pHead
->
data
==
data)
105
{
106
delete pHead;
107
pHead
=
NULL;
108
return
*
this
;
109
}
110
Node
*
p,
*
q;
111
p
=
pHead;
112
q
=
p
->
next;
113
while
( q
!=
NULL)
114
{
115
if
(q
->
data
==
data)
116
break
;
117
p
=
q;
118
q
=
q
->
next;
119
}
120
//
point to the q's next
121
p
->
next
=
q
->
next;
122
delete q;
123
124
return
*
this
;
125
}
126
127
CSingleList
&
reverse()
128
{
129
Node
*
p1,
*
p2,
*
p3;
130
//
如果長度小于2不用反轉
131
if
( pHead
==
NULL
||
pHead
->
next
==
NULL)
132
return
*
this
;
133
134
p1
=
pHead;
135
p2
=
pHead
->
next;
136
while
(p2
!=
NULL)
137
{
138
p3
=
p2
->
next;
139
p2
->
next
=
p1;
140
p1
=
p2;
141
p2
=
p3;
142
}
143
pHead
->
next
=
NULL;
144
pHead
=
p1;
145
return
*
this
;
146
}
147
//
得到鏈表中的倒數第N個
148
DataType getLastN(
int
lastN)
149
{
150
reverse();
151
Node
*
p
=
pHead;
152
for
(
int
i
=
1
; i
<
lastN;i
++
)
153
{
154
if
(p
==
NULL)
return
-
1
;
155
p
=
p
->
next;
156
}
157
reverse();
158
if
(p
!=
NULL)
return
p
->
data;
159
return
-
1
;
160
}
161
//
using 2 pointer to speed
162
DataType getLastN2(
int
lastN)
163
{
164
Node
*
p
=
pHead;
165
for
(
int
i
=
1
; i
<
lastN;i
++
)
166
{
167
if
(p
==
NULL)
return
-
1
;
168
p
=
p
->
next;
169
}
170
171
if
(p
!=
NULL)
172
{
173
Node
*
q
=
pHead;
174
while
( p
->
next
!=
NULL)
175
{
176
q
=
q
->
next;
177
p
=
p
->
next;
178
}
179
return
q
->
data;
180
}
181
return
-
1
;
182
}
183
//
for singleList, /使用選擇排序吧
184
CSingleList
&
selectSort()
185
{
186
if
( pHead
==
NULL)
return
*
this
;
187
for
( Node
*
p
=
pHead;p
!=
NULL;p
=
p
->
next)
188
{
189
Node
*
minNode
=
p;
190
for
(Node
*
q
=
p
->
next; q
!=
NULL; q
=
q
->
next)
191
{
192
if
( q
->
data
<
minNode
->
data)
193
{
194
minNode
=
q;
195
}
196
}
197
cout
<<
"
min =
"
<<
minNode
->
data
<<
endl;
198
swap( minNode
->
data, p
->
data);
199
}
200
return
*
this
;
201
}
202
CSingleList
&
insertSort()
203
{
204
if
( pHead
==
NULL)
return
*
this
;
205
206
for
(Node
*
p
=
pHead
->
next; p
!=
NULL;p
=
p
->
next)
207
{
208
if
( p
->
data
>
pHead
->
data)
//
209
{
210
DataType tmp
=
pHead
->
data;
211
for
(Node
*
q
=
pHead; q
!=
p;q
=
q
->
next)
212
{
213
214
}
215
}
216
}
217
}
218
}
;
219
void
swap(DataType
&
a, DataType
&
b)
220
{
221
a
=
a
+
b
-
( b
=
a);
222
}
223
224
225
int
main()
226
{
227
CSingleList myList1;
228
myList1.add(
3
).add(
5
).add(
34
).add(
24334
).add2Head(
88
);
229
230
myList1.print();
231
232
cout
<<
myList1.length()
<<
endl;
233
234
myList1.del(
5
).del(
34
);
235
236
myList1.print();
237
238
myList1.reverse();
239
myList1.print();
240
myList1.add(
233
).add(
256
);
241
myList1.print();
242
243
cout
<<
"
last 2 :
"
<<
myList1.getLastN2(
2
);
244
245
246
myList1.selectSort();
247
myList1.print(
"
afte sort
"
);
248
249
return
0
;
250
}
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
C++ placement new 用法舉例zz
字符串拆分的中文處理問題zz
關于C++中文字符的處理
gameloft??
C++一些用法整理
CSingleList的類實現,可以豐富起來
指向指針的引用
zz泛型編程:源起、實現與意義
zz:vc2005經驗
預編譯頭文件 zz
Powered by:
BlogJava
Copyright © 小強摩羯座
主站蜘蛛池模板:
中文字幕亚洲综合久久菠萝蜜
|
亚洲综合视频在线观看
|
国产免费人成视频尤勿视频
|
国产精品免费电影
|
亚洲1区2区3区精华液
|
免费人成在线观看网站品爱网日本
|
亚洲日本一线产区和二线
|
最近中文字幕无吗高清免费视频
|
亚洲中文无码av永久
|
无码日韩精品一区二区免费
|
亚洲深深色噜噜狠狠网站
|
在线观看人成网站深夜免费
|
亚洲欧美成人综合久久久
|
免费的一级片网站
|
免费播放国产性色生活片
|
亚洲人成网站色在线入口
|
香蕉视频在线免费看
|
亚洲成AV人在线观看天堂无码
|
国产精品白浆在线观看免费
|
久久久亚洲裙底偷窥综合
|
在线观看特色大片免费视频
|
亚洲熟妇成人精品一区
|
一本色道久久88亚洲综合
|
亚洲AV无码一区二区三区在线观看
|
成年免费a级毛片
|
国产亚洲精品va在线
|
亚洲成人免费网站
|
亚洲色欲色欲www在线播放
|
又粗又大又长又爽免费视频
|
亚洲电影唐人社一区二区
|
在线播放高清国语自产拍免费
|
亚洲av永久无码一区二区三区
|
国产免费直播在线观看视频
|
99re6在线精品免费观看
|
亚洲国产精品乱码在线观看97
|
浮力影院第一页小视频国产在线观看免费
|
午夜亚洲国产理论秋霞
|
动漫黄网站免费永久在线观看
|
jizzjizz亚洲日本少妇
|
亚洲国产精彩中文乱码AV
|
99在线视频免费观看视频
|