題目一:1.6-3 jmu-ds- 順序表刪除重複元素(25 分)
2.設計思路:
刪除函式:
變數定義i,j表示計數。
if l->length>0
}l長度=j+1;
}else
3.**截圖
4.pta提交列表說明
(1)應是鍊錶形式卻寫成結構體形式導致編譯錯誤。
eg:l.data[i]=a[i];
應改為l->data[i]=a[i];
(2)輸出函式出錯:題目要求最後輸出不能有空格。刪除函式:只能在空表的情況下成立,**不符合要求,第二個人for迴圈j++後此節點就往後移動,最後比較不了。
輸出函式修改:從第乙個到倒數第二個輸出後面都帶空格,最後乙個數單獨輸出,不帶空格。
for(i=0;i改為:
for(i=0;ilength;i++)
(3)刪除函式修改:利用for迴圈巢狀while迴圈,利用while迴圈從前到後找與i所指向的元素相同的數,找到跳出while迴圈,若沒有重複數字,則k一定大於j,在k>j的情況下重新記錄資料。一定要記住判斷此順序表是否為空,否則空表的測試點不通過。
for(i=1;ilength;i++)
改成
if(l->length>0)
l->length=j+1;
} else
題目二:6-2 jmu-ds-單鏈表逆置(25 分)
2.設計思路:
if(l的下乙個節點不為空)
最後乙個還是要指向其前乙個;
頭指標逆序後變最後乙個,最後乙個next=null ;
頭指標指向s;
}
3.**截圖
4.pta提交列表說明
(1)沒有考慮到空鍊錶的情況,導致空鍊錶執行出錯。
解決方法:在每乙個函式要進行時都判斷一下鍊錶是否為空,不為空才繼續進行。
題目三:7-2 一元多項式的乘法與加法運算(20 分)
2.設計思路:
分別建立建立一元多項式,一元多項式加法,一元多項式乘法,一元多項式輸出四個函式。(2)一元多項式的加法:
定義結構體指標ha,hb分別指向鍊錶a,b頭節點,
定義結構體指標f用於儲存新鍊錶,
while a and b都不空
doif(ha->exp!=hb->exp)
then 指數,係數相加後存入新鍊錶
else ha,hb同時往後移乙個節點,同樣存入新鍊錶
if a不為空
then c
if b不為空
then c
返回c
(3)一元多項式乘法
定義結構體指標ha,hb分別指向鍊錶a,b頭節點,
定義結構體指標f用於儲存新鍊錶,
if a空orb空
then 返回空的c
while ha
do依次乘b中的指數和係數
呼叫加法函式,將結果賦予f,
返回f
3.**截圖
4.pta提交列表說明
(1)沒意識到輸出要求數字間以空格分隔。
改為:
if(hc==null)
while(hc!= null)
(2)
乘法函式:沒有意識到倆鍊錶相乘完沒有按遞減順序排放,應在乘完之後再利用加法函式使其成遞減輸出。
while(ha!=null)
ha=ha->next;
return f;
}
應在ha=ha->next;後新增
l->next=null;
f= add(f,temp); //相當於按遞減排序
1.順序表pta排名
2.鍊錶pta排名
3.我的總分:
總分:2.5分
1.談談你本週資料結構學習時間是如何安排,對自己安排滿意麼,若不滿意,打算做什麼改變?
2.談談你對線性表的認識?
線性表就是有唯一的「第乙個」和「最後乙個」元素的有限序列。線性表元素與位置有關,這種位置上的的有序性就是一種線性關係。1)順序表:在儲存空間中是按順序儲存,不容易隨意改動。2)鍊錶:含有指向後繼節點的指標,變換更靈活。
3.**git提交記錄截圖
第02次作業 線性表
題目1 6 2 jmu ds 單鏈表逆置 題目2 6 3 jmu ds 鍊錶倒數第m個數 題目3 7 1 兩個有序鍊錶序列的合併 具體操作 題目1 6 2 jmu ds 單鏈表逆置 1.本題要求實現乙個函式,將給定單向鍊錶逆置,即表頭置為表尾,表尾置為表頭。鍊錶為帶頭結點鍊錶。要實現函式有3個分別為...
第02次作業 線性表
1.首先定義i,j兩個變數,i用來記錄陣列data的下標,而j用來記錄在區間 mind,maxd 之中的元素個數。2.當i 0到i l las 1t時,如果l data i mind l data i 不然 l data i j l data i i加一 最後線性表的長度減去j。返回 鍊錶l 解決方...
部落格作業02 線性表
給定乙個順序儲存的線性表,請設計乙個演算法查詢該線性表中最長的連續遞增子串行。例如,1,9,2,5,7,3,4,6,8,0 中最長的遞增子串行為 3,4,6,8 查詢最長連續遞增子串行函式 定義整型變數i,j表示迴圈變數,k用來作找到後新陣列下標 定義整型變數 maxlength 1 maxleng...