資料結構作業 2

2021-05-24 14:56:59 字數 2727 閱讀 4506

題目:設有乙個線性表

(a0, a1, …, an-2, an-1)

存放在單鏈表中。試編寫乙個演算法將該線性表原地逆置,即利用原結點空間置換為

(an-1, an-2, …, a1, a0)

,並分析該演算法的時間複雜度。

1

.需求分析

1) 用單鏈表存放乙個線性表 (a0, a1, …, an-2, an-1) 。

2) 將該線性表原地逆置,即利用原結點空間置換為 (an-1, an-2, …, a1, a0)。

3) 分析演算法的時間複雜度。

2

.概要設計

函式呼叫關係:

adt:

//鍊錶的節點定義

typedef

struct

linknode

nodetype;

3

.詳細設計

//建立鍊錶,使用者輸入節點的data域值,輸入結束

nodetype

*create()

//實現單鏈表的逆置(翻轉)。將頭節點為head的單鏈表逆置

nodetype

* invert(nodetype* head)

p=head

q=head->next;

while(q

不到鍊錶的結尾處)

head->next=null;

head=p;

return

head; }

4

.除錯分析

程式的時間複雜度為

o(n/2)。

5

.使用說明

執行程式,按照提示即可。

注釋和去注釋相應的**,即可完成響應的不同操作。一共有3處。

6

.測試結果

測試組一:

建立單連表,元素型別為

int,以

0結束輸入,不能以0開始

輸入第1個節點值:3

輸入第2

個節點值:4

輸入第3

個節點值:5

輸入第4

個節點值:6

輸入第5

個節點值:7

輸入第6

個節點值:8

輸入第7

個節點值:0

建立的是:從左往右,單鏈表的元素為:

345 678

翻轉之後:從左往右,單鏈表的元素為:

876 543

測試組二:

建立單連表,元素型別為

int,以

0結束輸入,不能以0開始

輸入第1個節點值

:12

輸入第2

個節點值

:34

輸入第3

個節點值

:56

輸入第4

個節點值

:78

輸入第5

個節點值

:90

輸入第6

個節點值:0

建立的是:從左往右,單鏈表的元素為:

123456 7890

翻轉之後:從左往右,單鏈表的元素為:

907856 3412

測試組三:

建立單連表,元素型別為

char,以#

結束輸入

輸入第1個節點值:q

輸入第2

個節點值:#

建立的是:從左往右,單鏈表的元素為:q

只有乙個,沒法翻轉,至少得兩個

翻轉之後:從左往右,單鏈表的元素為:空表

測試組四:

建立單連表,元素型別為

char,以#

結束輸入

輸入第1個節點值:x

輸入第2

個節點值:u

輸入第3

個節點值:e

輸入第4

個節點值:h

輸入第5

個節點值:u

輸入第6

個節點值:i

輸入第7

個節點值:p

輸入第8

個節點值:i

輸入第9

個節點值:n

輸入第10

個節點值:g

輸入第11

個節點值:#

建立的是:從左往右,單鏈表的元素為:

xue huiping

翻轉之後:從左往右,單鏈表的元素為:

gni piuheux

測試組五:

建立單連表,元素型別為

char,以#

結束輸入

輸入第1個節點值

:shu

輸入第2個節點值

:輸入第

3個節點值

:輸入第

4個節點值:#

建立的是:從左往右,單鏈表的元素為:

shu

翻轉之後:從左往右,單鏈表的元素為:

uhs

測試組六:大量資料

翻轉隨機資料

10000016

7

.附錄源程式檔案清單。

資料結構上機作業2

資料結構上機作業2 2.2 include using namespace std template class t class list 2.3 template class t 線性表的元素型別為t class arraylist public list 定義順序表arraylist maxsi...

資料結構作業2版

做到一半就懵了,有bug不想改了 include include include 只做了加減,越想越炸,邊查邊問給搞出來的,懵了已經 typedef struct accacc 字元轉整數 intchrtoint char a,int q,int h res a i 0 t t 10 return ...

資料結構與演算法 作業2

給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。class solution def removeduplicates self,nums list int in...