线性表算法题库_数据结构与算法(线性表)练习题
.word
資料
.
三、寫一個算法合并兩個已排序的線性表。
(用兩種方法:數組表示的線性表(順序表)和
指針表示的線性表(鏈表)
)
要求:
1
、定義線性表節點的結構,并定義節點的型和位置的型。
2
、定義線性表的基本操作
3
、在
1
,
2
的基礎上,完成本題。
4
、
在
main
函數中進行測試:
先構建兩個有序的線性表,
然后合并這兩個線性表。
四、已知一個單向鏈表,試給出復制該鏈表的算法。
要求:
1
、定義線性表的節點的結構以及節點的型和位置的型。
2
、定義線性表的基本操作
3
、在
1
,
2
的基礎上,完成本題。
4
、
在
main
函數中進行測試:
先構建一個線性表,并定義一個空線性表,
然后進
行復制。
五、寫出從一個帶表頭的單鏈表中刪除其值等于給定值
x
的結點的算法函數:
int?delete(LIST?&L,?int?x);
如果
x
在該鏈表中,則刪除對應結點,并返回其在鏈表
中的位置(邏輯位置,第一個結點的邏輯位置為
1
)
,否則返回
-1
。
要求:
1
、定義線性表的節點的結構以及節點的型和位置的型。
2
、定義線性表的基本操作
3
、在
1
,
2
的基礎上,完成本題。
4
、
在
main
函數中進行測試:
先構建一個線性表,
然后調用函數刪除值等于給定
值的節點。
六、寫出一個將兩個靜態鏈表(屬于同一個存儲池)合并的算法函數:
void?Merge(cursor?M,?cursor?N);
合并的方法是將
N
鏈表中的所有結點添加到
M
鏈
表的后面,并將
N
鏈表的表頭結點添加到空閑結點鏈表中。
要求:
1
、定義靜態鏈表的結點的結構以及結點的型
SPACE
以及位置(
position
)和游標
(
cursor
)的型。
2
、定義靜態鏈表的基本操作:
void
Initialize();
初始化,將所有存儲池中的結點設
置為空閑;
cursor?GetNode();
從空閑鏈中獲取一個結點;
void?FreeNode(cursor?q);
將
結點
q
加入到空閑鏈;
void?Insert?(?elementtype?x,?position?p,?cursor?M?);
在鏈表
M
中的位置為
p
的元素后面添加一個值為
x
的結點;
void
Delete
(cursor
M,??position
p
);
在鏈表
M
中刪除位置為
p
的元素的后一個元素。
3
、在
1
、
2
的基礎上完成本題。
4
、在
main
函數中進行測試:先構建一個存儲池,然后在該存儲池中創建兩個靜態
表,最后將這兩個靜態表合并。
七、利用指針表示的線性表
(
鏈表
)
表示一個多項式,并實現兩個多項式的相加和相乘運算。
假設多項式形式為:
1
1
1
1
...
)
(
e
e
m
e
m
x
a
x
a
t
a
x
A
m
m
?
?
?
?
?
?
其中,系數
a
i
≠0,指數
e
i
滿足
e
m
>e
m-1
>…>
e
2
>e
1
>=0
。
要求:
1
、定義多項式每一項的結構。
2
、定義兩個多項式的相加和相乘運算函數。
3
、在
main
函數中,構建兩個多項式,并測試相加和相乘運算。
總結
以上是生活随笔為你收集整理的线性表算法题库_数据结构与算法(线性表)练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: -f shell 模糊匹配_生产力工具:
- 下一篇: 清理mysql的sleep链接_Mysq