(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為一帶有頭結點的迴圈單鏈表,鍊錶中儲存一組無序...