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)
69SEX久久精品国产麻豆
|
99久久精品久久久久久清纯
|
欧美黑人又粗又大久久久
|
久久国产亚洲精品麻豆
|
老司机午夜网站国内精品久久久久久久久
|
国内精品伊人久久久久影院对白
|
久久精品国产国产精品四凭
|
精品一区二区久久久久久久网站
|
久久精品99无色码中文字幕
|
国内精品人妻无码久久久影院导航
|
aaa级精品久久久国产片
|
久久久国产视频
|
久久99热这里只有精品国产
|
亚洲中文久久精品无码ww16
|
伊人久久大香线蕉亚洲
|
国内精品伊人久久久久网站
|
久久精品国产亚洲av麻豆色欲
|
亚洲伊人久久成综合人影院
|
色播久久人人爽人人爽人人片aV
|
一本久久a久久精品vr综合
|
国产AV影片久久久久久
|
精品久久一区二区三区
|
国产午夜免费高清久久影院
|
亚洲国产另类久久久精品黑人
|
久久精品三级视频
|
国产成人久久精品麻豆一区
|
精品久久久久久
|
久久精品国产亚洲av日韩
|
亚洲午夜无码久久久久
|
亚洲精品tv久久久久久久久
|
99久久国产热无码精品免费
|
久久精品国产2020
|
久久综合亚洲色HEZYO社区
|
日本WV一本一道久久香蕉
|
国产69精品久久久久APP下载
|
欧美无乱码久久久免费午夜一区二区三区中文字幕
|
色综合久久久久久久久五月
|
久久精品无码av
|
久久亚洲国产成人精品无码区
|
国产A级毛片久久久精品毛片
|
国产日韩久久免费影院
|