1、深入了解線性表的邏輯結構特性及其基本操作。2、 熟練掌握線性表的鏈式儲存結構的定義及其基本操作的c 語言實現。
3、掌握單向鍊錶、單向迴圈鍊錶的應用,逐步培養解決實際問題的能力。
4、能夠從時間和空間複雜度的角度綜合比較線性表兩種儲存結構的不同特點及其適用場合。
1、一元稀疏多項式計算器第一題**:(1)設pn (x)和qm (x)分別為兩個一元稀疏多項式,利用單鏈表儲存pn (x)和qm(x)。
(2)從鍵盤輸入一元多項式的資訊,建立一元稀疏多項式pn (x)和qm (x)並輸出。
(3)實現pn (x)和qm(x)相加,並輸出兩者的和pn (x)+qm (x)。
(4)實現pn(x)和qm(x)相減,並輸出兩者的和pn(x) qm(x)。
(5)就地逆置兩者的差pn(x)-qm(x)。
2、設計並驗證以下演算法判定帶頭結點單向鍊錶l 的資料元素是否為非遞增有序如果是非遞增有序的,冊除值相同的多餘元素,並就地逆置刪除後的鍊錶l:如果不是非遞增有序的,輸出相應的提示資訊。
(1) 根據鍵盤輸入資料用尾插法建立帶頭結點單向鍊錶l。
(2) 輸出帶頭結點單向鍊錶l、冊除值相同多餘元素後的單向鍊錶l、就地逆置後的單向鍊錶l。
#include
#include
#include
typedef
struct polynomial
*polyn,polynomial;
//定義項式項
void
insert
(polyn p,polyn h)
if(q2&&p->expn==q2->expn)
//指數相同相合併
}else}}
polyn createpolyn
(polyn head,
int m)
//建立指標head、項數m元項式
return head;
}void
destroypolyn
(polyn p)
//銷毀項式p
}void
printpolyn
(polyn p)
while
(q)else
if(q->coef==-1
)}q=q->next;
flag++;}
printf
("\n");
}int
compare
(polyn a,polyn b)
elseif(
!a&&b)
return-1
;else
return1;
}polyn addpolyn
(polyn pa,polyn pb)
//求解並建立項式a+b返其指標
case0:
case-1
:}if(qc->coef!=0)
else
free
(qc)
;//相加係數0釋放該結點
}return headc;
}polyn subtractpolyn
(polyn pa,polyn pb)
//求解並建立項式a-b返其指標
pd=addpolyn
(pa,h)
;for
(p=h->next; p; p=p->next)
p->coef*=-
1;return pd;
}main()
case
'2':
case
'3':
case
'4':
case
'5':
default
:printf
("\n您選擇錯誤請重新選擇!\n");}}}
結果:
第二題
**(思路):
bool increase
(sqlist *l)
else
return false;
//只要有乙個不是後繼大於前驅,便不是遞增 }}
return true;
}
資料結構實驗二 線性表
一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.建立乙個n個學生成績的順序表,對錶進行插入 刪除 查詢等操作。分別輸出結果...
《資料結構》實驗二 線性表實驗
一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗時間 準備時間為第2周到第4周,具體集中實驗時間為第4週第2次課。2個學時。三 實驗...
《資料結構》實驗二 線性表實驗
資料結構 實驗二 線性表實驗 一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.建立乙個 n個學生成績的順序表,對錶進行插入...