部落格作業2 線性表

2022-05-16 20:32:40 字數 3304 閱讀 3236

定義變數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

if(a[i]>a[i-1])

else

end for

b[j]=l 存放最後的子列

max=b[0]

for i=0 to j+1

if(b[i]>max)

end for

for k=0 to flag

sum=sum+b[k];

求最長子列中第乙個數的下標

end for

for m=sum to sum+max 輸出最大子列的每個元素

1.部分正確:段錯誤 :之前定義的b陣列的長度為n,結果輸出是對的,但是提交結果是段錯誤,因為題目給的n是小於10的5次方,所以我就把長度改為10000,發現結果正確

2.漏存了最後一列子列,導致輸出。

定義變數linklist q=l表示第乙個指標用來移動至m,後移動至尾結點 p=l表示第二個指標用來移動至n-m個數(第m個倒數)

定義變數int j=0 計算鍊錶長度

while jnext;

第乙個指標移動至m個數

end while

while q!=null 第一,二個指標同時遍歷

j++;

p=p->next; 第乙個指標移動至尾結點

q=q->next;第二個指標移動至n-m個數

end while

if(m<=0||m>j-1) return -1 判斷無效位置

return p->data 返回倒數m位置的數值

部分正確:段錯誤:沒有判斷好鍊錶的長度,變數j把尾結點後乙個空指標的長度也計算進去了,所以需要減1

void printlist(list l); 輸出函式

void back(list &l); 求導函式

定義變數list la用於存放係數和指數的鍊錶,q,p幫助la建立存放數值

int expn1,coef1;用於輸入係數和指數

la=new lnode;

p=la;

while (cin>>coef1>>expn1)

q=new lnode;

q->coef=coef1;

q->expn=expn1;

p->next=q;

p=q;

運用尾插法插入結點

if(expn1==0||coef1==0) break; 以指數為0或係數為0作為結束標誌

end for

p->next=null;

back(la);

printlist(la);

return 0;

void back(list &l)

list m=l->next遍歷鍊錶 pre=l存放m的上乙個結點

錯誤:記憶體超限

分析:第一次碰到這種情況,當時有點手足無措,改了很多地方依然沒有解決問題,後來思考,最大可能是迴圈輸入資料的時候出現了錯誤,後面把輸入coef1,expn1作為迴圈條件,發現答案正確

學習時間安排:從其他學科作業量出發考慮,每週的三個晚自習會不定時的複習資料結構的內容,預習作業也是在晚自習時花上乙個或半個小時自己完成

程式設計時間安排:pta布置後,每個晚上都會花上2~3個小時的時間去寫**,如果在晚自習完成其他任務的情況下,會對pta上的題進行初步地思路設計,回到宿舍後在驗證自己的思路是否正確,以及相應地除錯。

不懂問題是哪種方式交流:1.首先必定是自己上網查閱資料或者翻書,自己獨立解決2.是先和舍友交流討論,一般情況都是能夠討論出正確理想的答案 3.上qq群詢問同學老師

void delete(linklist &l, int mink, int maxk) 

if (p)

// 釋放結點空間

}//if

}

部落格作業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 否則...

部落格作業2 線性表

一 pta實驗作業 5分 1.題目1 7 1 最長連續遞增子串行 2.設計思路 偽 或流程圖 定義 a,b,a放元素,b放遞增序列長度 將元素放入陣列a中 for i 0,j 0 i3.截圖 4.pta提交列表說明。剛開始用鍊錶做,一直過不了,後來改成陣列就比較明朗了,但是思路沒變,可能鍊錶用的還是...