Tauruser
Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(一)
Posted on 2006-03-04 13:14
Tauruser
閱讀(494)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
算法與數(shù)據(jù)結(jié)構(gòu)
題目:
1、試編寫在數(shù)組中插入一個(gè)元素和刪除一個(gè)元素的函數(shù),并調(diào)用此函數(shù)作一個(gè)整型數(shù)組的插入和刪除,要求整形數(shù)組開(kāi)始含有10個(gè)元素,插入的位置可在任意兩個(gè)數(shù)組元素之間、第一個(gè)元素前和最后一個(gè)元素后,刪除任意指定位置的元素,并將各元素的位置及相應(yīng)的元素值打印出來(lái)。
正如《
我的算法與數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)(二)
》中談到,在順序存儲(chǔ)中,插入與刪除操作的實(shí)現(xiàn)其關(guān)鍵在于對(duì)順序存儲(chǔ)空間的管理。作為順序存儲(chǔ),較為典型的是在數(shù)組中進(jìn)行。當(dāng)進(jìn)行插入和刪除操作時(shí),都要涉及到各個(gè)數(shù)組元素的移位,移位的順序是關(guān)鍵的,一不小心搞錯(cuò)了移位的順序就可能導(dǎo)致數(shù)組元素內(nèi)容的丟失。
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()兩個(gè)函數(shù)來(lái)看,在數(shù)組里進(jìn)行移位的順序剛才相反。插入從后到前,刪除從前到后。這樣的順序確保了,元素值不會(huì)給覆蓋丟失。其實(shí)如果再提供一個(gè)temp的變量,也可以實(shí)現(xiàn)移動(dòng)順序的改變。但就要再引入一個(gè)變量了。
PS:另外說(shuō)一點(diǎn),有同學(xué)問(wèn)我為什么在VS.net平臺(tái)里老是沒(méi)有辦法#include <iostream.h>。我想可能VS.net已經(jīng)在C++中放棄支持這個(gè)了。可以換成
#include
<
iostream
>
using
namespace
std;
使用ISO C++的庫(kù)就行了。不知道我的見(jiàn)解是否正確。
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
雙鏈表模版類的實(shí)現(xiàn)
C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類型性能對(duì)比
算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(二)
為什么在VS2005重載輸出運(yùn)算符那么難?
我的算法與數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)(三)
Josephus問(wèn)題
算法與數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)(一)
我的算法與數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)(二)
我的算法與數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)(一)
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Powered by:
C++博客
Copyright © Tauruser
日歷
<
2006年3月
>
日
一
二
三
四
五
六
26
27
28
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
8
公告
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(7)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
(16)
MFC(2)
計(jì)算機(jī)圖形學(xué)(2)
密碼學(xué)
數(shù)學(xué)模型
數(shù)值計(jì)算(2)
算法與數(shù)據(jù)結(jié)構(gòu)(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)
密碼學(xué)
數(shù)學(xué)模型
數(shù)值計(jì)算
算法與數(shù)據(jù)結(jié)構(gòu)(4)
網(wǎng)絡(luò)(1)
信息論
文章檔案
(5)
2006年4月 (1)
2006年3月 (4)
相冊(cè)
文章貼圖
收藏夾
(3)
我的收藏(3)
協(xié)議
流媒體
中國(guó)協(xié)議網(wǎng)
友情鏈接
Orlaa
最新隨筆
1.?CListCtrl For Beginners(轉(zhuǎn)載)
2.?結(jié)構(gòu)體對(duì)齊的具體含義(#pragma pack) (轉(zhuǎn)載)
3.?MFC ComboBox 使用方法(轉(zhuǎn)載)
4.?05年寫的直線裁剪算法
5.?C# Coding時(shí)的注釋格式(zz)
6.?查找字符串的哈希方法(zz)
7.?木馬客戶端與服務(wù)端通訊如何隱藏不被發(fā)現(xiàn)
8.?Gauss消去法直接求解方程組(附例程)
9.?使用AsycnSocket類進(jìn)行簡(jiǎn)單雙機(jī)通訊
10.?Romberg求積(例程)
搜索
積分與排名
積分 - 106047
排名 - 237
最新評(píng)論
1.?re: 雙鏈表模版類的實(shí)現(xiàn)
問(wèn)下:關(guān)于查找(search)那部分,我有點(diǎn)小問(wèn)題要問(wèn),就是你直接就靠默認(rèn)的比較操作符來(lái)比較,而你所用的是模版,鏈表支持各種類型,那么是字符串類型的鏈表或自定義類型的呢,你該怎么辦
--周曉榮
2.?re: OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯(cuò)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--NULL
3.?re: C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類型性能對(duì)比
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--Hzj_jie
4.?re: 05年寫的直線裁剪算法
你這個(gè)算法也太復(fù)雜了吧
--啊啊啊啊啊啊
5.?re: C++ Primer Fourth Edition (download file)
i want english edition
--zhccc
閱讀排行榜
1.?MFC ComboBox 使用方法(轉(zhuǎn)載)(18735)
2.?結(jié)構(gòu)體對(duì)齊的具體含義(#pragma pack) (轉(zhuǎn)載)(11447)
3.?Tab Control控件使用的例子(zz)(8355)
4.?MAC地址有合法不合法之分嗎?(7571)
5.?VC++2005 比 VC++ 6.0 退步了?(7534)
評(píng)論排行榜
1.?C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類型性能對(duì)比(20)
2.?VC++2005 比 VC++ 6.0 退步了?(12)
3.?OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯(cuò)(8)
4.?為什么在VS2005重載輸出運(yùn)算符那么難?(7)
5.?Gauss消去法直接求解方程組(附例程)(7)
欧美久久亚洲精品
|
亚洲级αV无码毛片久久精品
|
yy6080久久
|
久久精品国产亚洲精品
|
国产成人综合久久综合
|
99精品久久久久久久婷婷
|
老司机午夜网站国内精品久久久久久久久
|
国产成人精品久久二区二区
|
精品久久人人爽天天玩人人妻
|
久久久久婷婷
|
久久久精品波多野结衣
|
精品久久久无码中文字幕天天
|
久久精品国产69国产精品亚洲
|
国产99精品久久
|
久久久国产精品福利免费
|
久久久久综合网久久
|
久久久精品人妻一区二区三区四
|
久久婷婷五月综合色奶水99啪
|
人妻无码久久一区二区三区免费
|
色天使久久综合网天天
|
久久亚洲sm情趣捆绑调教
|
久久99久国产麻精品66
|
中文字幕久久久久人妻
|
久久亚洲春色中文字幕久久久
|
久久青青草原精品国产
|
国产V综合V亚洲欧美久久
|
久久99精品国产麻豆宅宅
|
国产精久久一区二区三区
|
久久久久久久免费视频
|
久久精品草草草
|
久久久久国产一区二区
|
无码任你躁久久久久久老妇
|
久久SE精品一区二区
|
国内精品久久久久影院免费
|
99热热久久这里只有精品68
|
久久一本综合
|
精品久久久久久国产
|
97久久精品人人澡人人爽
|
色悠久久久久久久综合网
|
久久久一本精品99久久精品88
|
国产69精品久久久久9999APGF
|