1. 程式人生 > >第二次作業-線性表

第二次作業-線性表

導致 開頭 post 歷程 info 線性數據結構 pos spa 題目

PTA試驗作業

題目:

技術分享圖片

思路

建立一個鏈表LinkList1
當輸入不是-1的時候
繼續錄入
到-1的時候結束
建立一個鏈表LinkList2(鏈表2用函數建立比較方便)
合並LinkList1和2到3
排序

技術分享圖片

技術分享圖片

心路歷程⑴沒有考慮鏈表為空的時候;(思維不夠緊密,要加強)

⑵在打代碼時很容易打錯導致編譯錯誤;(不要求快,要細心解決這種低級錯誤)

題目:

技術分享圖片

思路:

int i,j=0;i用於計數,j為統計被刪除的個數

for(i=0;i<=L->Last;i++){
if(L->Data[i]>minD&&L->Data[i]<maxD){判斷符合刪除條件的個數
}
else{
L->Data[j]=L->Data[i];不滿足刪除條件的存入 從新的下標開始儲存
j++;
}
}
L->Last=L->Last-c;數組長度減去刪除個數

技術分享圖片

技術分享圖片

題目:

技術分享圖片

設計思路:

首先建立兩個指針p,q;

p指向L-next鏈表第一個元素,然後斷開頭節點與鏈表即為L->next=NULL;

然後用while循環(p!=NULL)

q=p此時q中存有第一個元素

p指向p->next

q與L連起來

L->next =q 把q的值給頭節點的下一個元素,相當於頭插法的操作,每循環一次將後面的元素插在頭節點之後,就完成了逆置的操作。

技術分享圖片

錯誤:在一些小細節上按犯錯,在這個題中就沒遇到太大問題。

排名:

順序表PTA排名

技術分享圖片

鏈表排名:

技術分享圖片

總分:190

總分150-220:1.5分

三、本周學習總結

答:

1.線性表是n個數據元素的有限集合

2.他存在唯一的一個被叫做“第一個”的數據元素,存在唯一的一個被叫做“最後一個”的數據元素。

3.除了第一個數據元素外,其它的數據元素都有一個前驅。除了最後一個數據元素外,其它的數據元素都有一個後繼。即中間的元素有一個前驅和一個後驅

4.線性表是一個動態的線性數據結構,他的長度可以在運行時根據需要增加或者縮短。

5.線性表有順序表,單鏈表,雙向鏈表,循環鏈表,靜態表

6.線性表是n個數據元素構成的有限線性序列

第二次作業-線性表