DS部落格作業02 線性表

2022-04-12 21:06:18 字數 2710 閱讀 9568

方法,還有迴圈鍊錶和雙鏈表的建立,學習了這幾種鍊錶,在今後的使用鍊錶中有了更多的選擇,同時也提高了解部分題目的效率。

在順序表這一方面,主要學習的是對順序表的插入和刪除操作,鍊錶也同樣是插入和刪除,再加上擴充套件的一些操作。這兩種線性表各有

其優缺點,在使用時還需要分情況考慮。

插入函式listinsert(linklist &l, elemtype e)

p1=l

p->data=e

while(p1!=null && p1->next != null)

if(p1->next->data > p->data ) //因為鍊錶有序,所以只要找到比插入數大的結點

插入p結點在p1後

return

end if

p1=p1->next

end while

p1->next=p; //插入點位於鍊錶尾

刪除函式void listdelete(linklist &l, elemtype e)

p1=l

while(p1!=null && p1->next!=null)

if (p1->next->data == e) //找到結點data域值為e的結點

刪除p1->next結點

return

end if

p1=p1->next

end while

輸出「找不到」

查詢函式find(list l, elementtype x)

for i=0 to l->last then

找到l->data[i]==x

return i

end for

插入函式insert(list l, elementtype x, position p)

if(p < 0 || p > l->last+1) return false //p指向非法位置

if( l->last == maxsize-1) return false //順序表滿

for i=l->last to p then

依次將第p個元素往後移動乙個單位

end for

l->data[p]=x

l->last++

刪除函式delete(list l, position p)

if (p < 0 || p > l->last) return false //p指向非法位置

for i=p+1 to l->last then

依次將p+1至l->last個元素像前移動乙個單位

q1:之前一直提交都是答案錯誤而且都是一分都沒有的情況但是在vs上卻可以執行

a1:在vs上可以執行,在pta裡卻是一分都沒有,之後一直以為是格式的問題,**多了或少了乙個空格,查完之後

發現格式根本沒錯誤,在看了同學的**之後發現我的動態分配記憶體的格式跟他們的不一樣,但是在vs上卻可以正

常執行,格式改完在pta上就沒問題了

while(p!=null)

index = count - m //倒數第m個,正數則是第index個

q1:第一次提交部分正確

a1:第一次在編譯器上只實現了題目中的例子,但在輸入其他數值時還有些問題,後來把count和i的值重新進行計算

就行了q2:第二次提交部分正確

a2:第二次提交在正常情況下是沒問題的,但是當index=count-m小於零時會出現錯誤,改進之後在計算index值的後

麵添上了乙個index小於零時就return -1

定義兩個指標都先指向煉表頭結點,先將第乙個指標移動至第n+1個結點,這樣一來第乙個指標跟第二個指標之間就

相差n個結點,然後同時將第乙個和第二個指標往後移動,直到第乙個指標到鍊錶的末尾,這是第二個指標所指向的

位置正好就是倒數第n個結點的位置。

DS部落格作業02 線性表

這階段學習學的是線性表,學習線性表的兩種儲存順序 鍊錶和順序表,體會了兩者儲存結構之間的區別,通過對順序表,單鏈表,雙鏈表,迴圈鍊錶,有序表的特點的了解,和學習它們的演算法設計方法,綜合運用線性表解決一些問題,在查資料時,也領悟一點單雙鏈表的在一些方面使用的優劣,對線性表的知識更加加深一點。void...

DS部落格作業02 線性表

1.2談談你對線性表的認識及學習體會 1 線性表是一種典型的線性結構,也是一種最常用的資料結構。線性表包括順序儲存結構和來鏈式儲存結構兩種,其中鏈式儲存結構的鍊錶正是上學期學過一點,在運用上的話,原理是懂了,但是運用起來還是 有點欠佳。剛開始做對鍊錶的一些操作方法有點不清楚,還有就是這學期涉及到時間...

DS部落格作業02 線性表

線性表的很多操作都有多種實現方法,在這些操作方法之間我們要盡量選擇一種最優的方法,這就對個人的思維能力有一定要求。而在對線性表進行操作時,有一些細節也要特別注意,比如說鍊錶中指標域的指向,我在對鍊錶進行操作時就經常忽略指標的指向已經改變而導致出錯。相加 等同於兩個有序鍊錶合併,只有在兩個指數相同的節...