資料結構與演算法實驗報告 實驗一 鍊錶

2021-10-05 13:22:29 字數 2175 閱讀 9032

實驗一 鍊錶

實驗目的和要求

1.理解線性表的鏈式儲存結構。

2.熟練掌握動態鍊錶結構及有關演算法的設計。

根據具體問題的需要,設計出合理的表示資料的鍊錶結構,並設計相關 演算法。

實驗任務

1. 對任意輸入的一組資料,建立乙個遞增有序的單鏈表。

2. 將單鏈表l中的奇數項和偶數項結點分解開,並分別連成乙個單鏈表。

3. 用遞增有序的鍊錶a、b表示兩個集合,判斷b是否是a的子集。

4. 用遞增有序的鍊錶a、b表示兩個集合,設計演算法求它們的並集。

5. 設計演算法判斷單迴圈鍊錶是否每個結點的值都是偶數。

實驗內容

1實驗用儀器,裝置

visual stidio2019

2實驗內容與步驟

實驗**:

1.

#include

using

namespace std;

typedef

int elementtype;

enum errorcode

;typedef

struct linknode node;

class

list

;list::

list()

list::

~list()

bool list::

empty()

errorcode list::

insert

(const

int i)

else

s->next = p-

>next;

p->next = s;

s->data = i;

count++;}

return success;

}errorcode list::

print()

if(p-

>next ==

null

) cout << endl;

return success;

}int

main()

chain.

print()

;return0;

}

int

main()

cout <<

"奇數鍊錶:"

; odd.

print()

; cout <<

"偶數鍊錶:"

; even.

print()

;return0;

}

elementtype list::

get_top

(elementtype x)

bool list::

compare

(list m, list n);if

(x1 > x2)

if(x1 < x2)}}

if(judge ==1)

return

true

;else

return

false

;}

void

merge_list

(list a,list b, list c)

if(x < y)

if(x > y)

}while

(ia <= counta)

}while

(ib <= countb)

} c.

print()

;}

elementtype list::

is_even()

s = s-

>next;}if

(s->next == head)

return j;

}

感想、體會、建議

1.構造單鏈表時要注意相關節點結構的構造,鍊錶為空時插入新節點時要 注意頭節點與新節點的關係;要注意設定結束插入新資料的符號;

2.輸入元素時要注意鍊錶是否已滿;

3.注意get_top是否改變了x的值,是值傳遞還是引用,若是值傳遞要注意 及時改變相關值;

4.求並集時需要注意構造鍊錶時採用的是尾插法還是頭插法;

5.注意判斷的條件,最後乙個結點的判斷。

資料結構實驗報告 資料結構實驗報告

使用c語言中的陣列,實現線性表中的順序結構儲存的查詢 刪除操作。1 初始線性表通過陣列 迴圈 scanf語句實現輸入任意個整數。2 刪除操作的實現,任意輸入乙個要刪除的整數,找到這個元素,將此元素之後的所有元素逐個前移一位,實現刪除操作。3 要求以上2步操作可以重複執行。4 例如 刪除操作執行結果大...

資料結構實驗一 實驗報告

一 實驗目的 複習鞏固vc程式設計環境的使用,以及c 模板設計。1.回顧並掌握vc單檔案結構程式設計過程。2.回顧並掌握vc多檔案工程設計過程 3.掌握vc程式除錯過程。4.回顧c 模板和模板的程式設計。三 實驗內容 1.設計乙個單檔案結構程式完成從鍵盤輸入兩個數,輸出二者的 和 和 積 的結果。要...

資料結構實驗一 實驗報告

一 實驗目的 1 掌握線性表的順序儲存結構 2 驗證順序表及其基本操作的實現 3 理解演算法與程式的關係,能夠將順序表演算法轉換為對應的程式。二 實驗內容 1 建立含有若干個元素的順序表 2 對已建立的順序表實現插入 刪除 查詢等基本操作。三 實驗源 include using namespace ...