資料結構實驗1《線性表的操作》(3)

2021-08-16 04:32:02 字數 1911 閱讀 9288

(3)

鍊錶的建立、插入、刪除、查詢,以及線性表合併

程式:

#include

using

namespace std;

intmain();

polynomial

head;

//頭結點

polynomial

*p;//用於各種操作的臨時指標

int length_of_linear_list =0;

//記錄鍊錶的長度

head.next = null;

int temp_degree;

//用來判斷是否繼續輸入

double temp_coefficient;

cout <<

"enter coefficient and degree ,enter -1,-1 for end "

<< endl;

while

(true

) p = head.next;

cout <<

"the polynomial is "

;while

(p != null)

//插入操作

int i;

//在第i個元素之前插入1個元素

cout << endl << endl <<

"在第i個元素之前插入1個元素,輸入i "

; cin >> i;

if(i<

1|| i>length_of_linear_list)cout <<

"enter error!"

;else

insert->next = p->next;

//在p和p的後繼之間插入剛剛申請的insert

p->next = insert;

p = head.next;

cout <<

"the polynomial is "

;while

(p != null)

}//刪除操作

int i2;

//刪除第i2個元素

cout << endl << endl <<

"刪除第i個元素,輸入i "

; cin >> i2;

if(i2<

1|| i2>length_of_linear_list)cout <<

"enter error!"

;else

polynomial

*temp;

//用temp儲存要刪掉的結點

temp = p->next;

p->next = temp->next;

free

(temp);

} p = head.next;

cout <<

"the polynomial is "

;while

(p != null)

//查詢操作

int number_find;

cout << endl << endl <<

"enter the number you find"

<<

" "

; cin >> number_find;

p = head.next;

int position =1;

//記錄指標p目前的位置

while

(p->degree != number_find)

cout << number_find <<

"是第"

<< position <<

"個元素"

;return0;

}

執行結果:

資料結構實驗1 線性表 鍊錶

線性表的順序儲存與鍊錶儲存,實現資料插入 刪除運算。將1中儲存結構改為迴圈鍊錶 雙向鍊錶 迴圈雙向鍊錶等,實現資料插入 刪除。線性表 include include include define ok 1 define error 0 define overflow 0 define list in...

資料結構 線性表3

每天要學習的太多,今天花大量時間敲完靜態鍊錶的 發現後面還有迴圈鍊錶,雙向鍊錶,這樣學習效率太低。所以後面不打算把偽碼重新實現一遍,只記錄學習的要點等。通過物理的線性結構實現邏輯的鏈式儲存,下標由0開始,及s 0 為第乙個資料。typedef struct component,staticlinkl...

資料結構3 線性表

設計演算法,將兩個安置遞增有序的單鏈表合併成乙個安置遞增有序的單鏈表。void listmerge linklist la,linklist lb,linklist lc else if la lc next la if lb lc next lb 設l為一帶有頭結點的迴圈單鏈表,鍊錶中儲存一組無序...