部落格作業2 線性表

2022-05-29 13:54:16 字數 2819 閱讀 9381

6-2 線性表元素的區間刪除

定義整型變數i,j,k,count

定義乙個陣列a[maxsize]

for i=0 to i小於等於l->last

如果l->data[i]不在mind和maxd這個區間內的元素,則儲存到陣列中,count++

i++end for

for k=0 to k小於count

將陣列中的數值賦值到線性表

end for

記下線性表中最後乙個元素的位置

前面幾次寫**的時候,沒用陣列,自己的思路也有問題,提交測試點一直是段錯誤,後來實在不會,就用陣列來輔助

集合的基本運算(單鏈表)

並集:

定義指標p指向帶頭節點的單鏈表ha的第乙個元素,定義指標q指向帶頭節點的單鏈表hb的第乙個元素,定義指標r,s用尾插法構造新的鍊錶

為新鍊錶hc申請空間

while(p並且q都不為空)

將p、q進行比較,按遞增的順序將它們合併到新鍊錶中

while(p不為空)

將剩下的元素乙個乙個接入到新鍊錶中

while(q不為空)

將剩下的元素乙個乙個接入到新鍊錶中

交集定義指標p指向帶頭節點的單鏈表ha的第乙個元素,定義指標q指向帶頭節點的單鏈表hb的第乙個元素,定義指標r,s用尾插法構造新的鍊錶

為新鍊錶hc申請空間

while(p不為空)

q指向hb的第乙個元素

while q的元素小於p的元素並且q不為空

q移到下乙個元素

if q不為空並且p、q的元素相等

將這個元素插入新煉表中

p移動到下乙個元素

差集定義指標p指向帶頭節點的單鏈表ha的第乙個元素,定義指標q指向帶頭節點的單鏈表hb的第乙個元素,定義指標r,s用尾插法構造新的鍊錶

為新鍊錶hc申請空間

while(p不為空)

q指向hb的第乙個元素

while q的元素小於p的元素並且q不為空

q移到下乙個元素

if q為空並且p、q的元素不相等

將p這個元素插入新煉表中

p移動到下乙個元素

銷毀函式寫錯了,非法越界,而自己一直以為是差集跟交集的函式錯了,找了好久都找不出錯誤,最後同學幫忙找出了錯誤。

修改完之後沒注意到前一次**的括號沒刪完,導致了編譯錯誤

7-1 兩個有序鍊錶序列的合併

建立鍊錶

為l申請空間,定義指標r、s用尾插法構造新的鍊錶

定義乙個elemtype型別的變數x

輸入x的值,

while(x>0)

用尾插法將這個元素插入到鍊錶中

繼續讀入x的值

當不滿足條件時,結束while

合併定義指標p指向帶頭節點的單鏈表ha的第乙個元素,定義指標q指向帶頭節點的單鏈表hb的第乙個元素,定義指標r,s用尾插法構造新的鍊錶

為新鍊錶hc申請空間

while(p並且q都不為空)

將p、q進行比較,按遞增的順序將它們合併到新鍊錶中

while(p不為空)

將剩下的元素乙個乙個接入到新鍊錶中

while(q不為空)

將剩下的元素乙個乙個接入到新鍊錶中

第一次提交忘了改編譯器

第二、三次提交,鍊錶空時,段錯誤,又是銷毀的出錯,非法越界了,跟前一題一樣

後面提交的,輸入時的判斷條件錯誤,寫成x!=-1,有並列數字時錯誤,並列數字也要全部插進去

線性表的儲存結構有兩種:順序和鍊錶

順序表元素的位址是連續的,

鍊錶節點的位址不是連續的,是靠指標連起來的

順序表在查詢資料的時候會比較方便,而鍊錶在增加和刪除的時候,步驟會比順序表的簡單

線性表除第乙個元素外,其他每乙個元素有且僅有乙個直接前驅,除最後乙個元素外,其他每乙個元素有且僅有乙個直接後繼

(此**的**)

該段**的主要作用是判斷我們輸入的密碼是否足夠安全,用c1、c2、c3、c4分別代表4個不同種類的密碼元素,當元素種類小於3的時候,就說明密碼的安全係數不夠高,當元素種類大於等於3時,說明密碼的安全係數夠了

部落格作業2 線性表

定義變數n存放順序表長度,i,j 0控制迴圈,l 1存放子列長度,k,m,max存放最大子列長度,flag存放最長子列陣列下標,sum 0求和 scanf d n int a n 存放母列 b 100000 存放子列長度 for i 0 to n 輸入母列 end for for i 1 to n ...

部落格作業2 線性表

定義整型變數i作為迴圈變數,j用來儲存所刪除節點的個數 for i小於順序表長度時執行迴圈 if 順序表中第i個數大於mind且小於maxd j 否則l data i j l data i 本題第一次提交時用了while迴圈語句,結果編譯器判定是段錯誤,後來改為for迴圈時提交答案正確。void c...

部落格作業2 線性表

for i 0 to length 1 if j大於等於i length為k 剛開始把重新賦值的 放在了第二個for裡面。linklist p l 用p代替l while p next不為0 if m為0或者大於n 不存在返回 1 while j小於n m 1且p不為0 if p為0 返回 1 否則...