会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
火星人啦
~╮(╯▽╰)╭~
博客园
首页
新随笔
联系
管理
数据结构 - 单链表之删除
首先要得到删除的那个节点.. 然后根据节点删除链表..
Code
1
cout
<<
"
请输入要删除的学生号 结束输入 -1 >
"
;
2
cin
>>
findword;
3
if
(findword
==
-
1
)
4
break
;
5
else
{
6
ptr
=
head;
7
find
=
0
;
8
while
(ptr
!=
NULL)
9
{
10
if
(ptr
->
num
==
findword)
11
{
12
*
ptr
=
del_ptr(head, ptr);
//
返回:头指针
13
find
++
;
14
}
15
ptr
=
ptr
->
next;
16
}
17
if
(find
==
0
)
18
cout
<<
"
没有找到..
"
<<
endl;
19
}
Code
1
//
删除节点
2
list del_ptr(list
*
head, list
*
ptr)
//
head链表头 ptr要删除的节点
3
{
4
list
*
top;
5
top
=
head;
6
if
(ptr
==
head)
//
删除的节点在表头
7
{
8
head
=
head
->
next;
9
cout
<<
"
已经删除第
"
<<
ptr
->
num
<<
"
号学生 姓名:
"
<<
ptr
->
name
<<
endl;
10
}
11
else
{
12
while
(top
->
next
!=
ptr)
//
找到删除节点的前面一个位置
13
top
=
top
->
next;
14
if
(ptr
->
next
==
NULL)
//
删除的节点在最后一个
15
{
16
top
->
next
=
NULL;
17
cout
<<
"
已经删除第
"
<<
ptr
->
num
<<
"
号学生 姓名:
"
<<
ptr
->
name
<<
endl;
18
}
else
{
//
在表中的任意一点
19
top
->
next
=
ptr
->
next;
20
cout
<<
"
已经删除第
"
<<
ptr
->
num
<<
"
号学生 姓名:
"
<<
ptr
->
name
<<
endl;
21
}
22
}
23
delete []ptr;
//
删除..
24
return
*
head;
25
}
posted @
2009-04-12 19:05
Moli
阅读(
739
) 评论(
1
)
收藏
举报
刷新页面
返回顶部
公告