Tauruser
Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
C++博客
::
首页
::
新随笔
::
联系
::
聚合
::
管理
算法与数据结构实验(一)
Posted on 2006-03-04 13:14
Tauruser
阅读(487)
评论(0)
编辑
收藏
引用
所属分类:
算法与数据结构
题目:
1、试编写在数组中插入一个元素和删除一个元素的函数,并调用此函数作一个整型数组的插入和删除,要求整形数组开始含有10个元素,插入的位置可在任意两个数组元素之间、第一个元素前和最后一个元素后,删除任意指定位置的元素,并将各元素的位置及相应的元素值打印出来。
正如《
我的算法与数据结构学习(二)
》中谈到,在顺序存储中,插入与删除操作的实现其关键在于对顺序存储空间的管理。作为顺序存储,较为典型的是在数组中进行。当进行插入和删除操作时,都要涉及到各个数组元素的移位,移位的顺序是关键的,一不小心搞错了移位的顺序就可能导致数组元素内容的丢失。
1
#include
<
iostream
>
2
using
namespace
std;
3
int
a[
20
];
4
int
count;
5
int
choice;
6
bool
Exit(
0
);
7
void
insert(
int
*
line);
8
void
del(
int
*
line);
9
void
display(
int
*
line);
10
11
12
int
_tmain(
int
argc, _TCHAR
*
argv[])
13
{
14
for
(
int
i(
0
);i
<
10
;i
++
)
15
a[i]
=
i;
16
count
=
10
;
17
while
(
!
Exit)
18
{
19
cout
<<
"
1.insert a num
"
<<
endl;
20
cout
<<
"
2.delete a num
"
<<
endl;
21
cout
<<
"
3.dispaly the list
"
<<
endl;
22
cout
<<
"
0.exit
"
<<
endl;
23
cout
<<
"
please input your choice:
"
;
24
cin
>>
choice;
25
if
(choice
==
1
)
26
{
27
insert(a);
28
}
29
else
if
(choice
==
2
)
30
{
31
del(a);
32
}
33
else
if
(choice
==
3
)
34
{
35
display(a);
36
}
37
else
if
(choice
==
0
)
38
{
39
Exit
=
true
;
40
}
41
}
42
cout
<<
"
Power by Tauruser
"
;
43
return
0
;
44
45
}
46
47
void
insert(
int
*
line)
48
{
49
int
loc,num;
50
cout
<<
"
where you would like to insert:
"
;
51
cin
>>
loc;
52
if
(loc
<
1
||
loc
>
count
+
1
)
53
{
54
cout
<<
"
data overflow
"
;
55
return
;
56
}
57
cout
<<
"
what num you would like to insert:
"
;
58
cin
>>
num;
59
for
(
int
i
=
count;i
>
loc
-
1
;i
--
)
60
{
61
line[i]
=
line[i
-
1
];
62
}
63
count
++
;
64
line[loc
-
1
]
=
num;
65
}
66
67
void
del(
int
*
line)
68
{
69
int
loc;
70
cout
<<
"
which num you would like to delete:
"
;
71
cin
>>
loc;
72
if
(loc
<
1
||
loc
>
count)
73
{
74
cout
<<
"
data overflow
"
;
75
return
;
76
}
77
for
(
int
i
=
loc
-
1
;i
<
count
-
1
;i
++
)
78
{
79
line[i]
=
line[i
+
1
];
80
}
81
count
--
;
82
}
83
84
void
display(
int
*
line)
85
{
86
for
(
int
i(
0
);i
<
count;i
++
)
87
{
88
cout
<<
"
No.
"
<<
i
+
1
<<
"
num is
"
<<
line[i]
<<
endl;
89
}
90
}
91
从insert()与del()两个函数来看,在数组里进行移位的顺序刚才相反。插入从后到前,删除从前到后。这样的顺序确保了,元素值不会给覆盖丢失。其实如果再提供一个temp的变量,也可以实现移动顺序的改变。但就要再引入一个变量了。
PS:另外说一点,有同学问我为什么在VS.net平台里老是没有办法#include <iostream.h>。我想可能VS.net已经在C++中放弃支持这个了。可以换成
#include
<
iostream
>
using
namespace
std;
使用ISO C++的库就行了。不知道我的见解是否正确。
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
双链表模版类的实现
C风格字符串与标准库string类型性能对比
算法与数据结构实验(二)
为什么在VS2005重载输出运算符那么难?
我的算法与数据结构学习(三)
Josephus问题
算法与数据结构实验(一)
我的算法与数据结构学习(二)
我的算法与数据结构学习(一)
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © Tauruser
日历
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
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
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(7)
给我留言
查看公开留言
查看私人留言
随笔分类
(16)
MFC(2)
计算机图形学(2)
密码学
数学模型
数值计算(2)
算法与数据结构(9)
信息论(1)
随笔档案
(34)
2007年3月 (1)
2007年2月 (2)
2007年1月 (1)
2006年10月 (1)
2006年6月 (3)
2006年5月 (5)
2006年4月 (6)
2006年3月 (14)
2006年2月 (1)
文章分类
(5)
密码学
数学模型
数值计算
算法与数据结构(4)
网络(1)
信息论
文章档案
(5)
2006年4月 (1)
2006年3月 (4)
相册
文章贴图
收藏夹
(3)
我的收藏(3)
协议
流媒体
中国协议网
友情链接
Orlaa
最新随笔
1. CListCtrl For Beginners(转载)
2. 结构体对齐的具体含义(#pragma pack) (转载)
3. MFC ComboBox 使用方法(转载)
4. 05年写的直线裁剪算法
5. C# Coding时的注释格式(zz)
6. 查找字符串的哈希方法(zz)
7. 木马客户端与服务端通讯如何隐藏不被发现
8. Gauss消去法直接求解方程组(附例程)
9. 使用AsycnSocket类进行简单双机通讯
10. Romberg求积(例程)
搜索
积分与排名
积分 - 105019
排名 - 237
最新评论
1. re: 双链表模版类的实现
问下:关于查找(search)那部分,我有点小问题要问,就是你直接就靠默认的比较操作符来比较,而你所用的是模版,链表支持各种类型,那么是字符串类型的链表或自定义类型的呢,你该怎么办
--周晓荣
2. re: OnSize()加入处理函数后,DEBUG报告出错
评论内容较长,点击标题查看
--NULL
3. re: C风格字符串与标准库string类型性能对比
评论内容较长,点击标题查看
--Hzj_jie
4. re: 05年写的直线裁剪算法
你这个算法也太复杂了吧
--啊啊啊啊啊啊
5. re: C++ Primer Fourth Edition (download file)
i want english edition
--zhccc
阅读排行榜
1. MFC ComboBox 使用方法(转载)(18708)
2. 结构体对齐的具体含义(#pragma pack) (转载)(11390)
3. Tab Control控件使用的例子(zz)(8345)
4. VC++2005 比 VC++ 6.0 退步了?(7513)
5. MAC地址有合法不合法之分吗?(7457)
评论排行榜
1. C风格字符串与标准库string类型性能对比(20)
2. VC++2005 比 VC++ 6.0 退步了?(12)
3. OnSize()加入处理函数后,DEBUG报告出错(8)
4. 为什么在VS2005重载输出运算符那么难?(7)
5. Gauss消去法直接求解方程组(附例程)(7)