第二小組鍊錶討論

2022-09-12 16:45:28 字數 4590 閱讀 4301

一、pta題目集

4-1、刪除單鏈表偶數節點

,碰到問題如下:

1)剛開始時候忘記了判斷頭節點資料 導致答案出錯

2)函式題只能對函式進行操作,有同學一開始將main函式中做了修改,編譯出錯。這是題目已定的部分,不能更改。

3)在判斷節點是否為偶數時,若節點不為偶數則跳過,執行程式結果與預期不符

解決辦法:與小組討論後得知,不能直接用a=a->next這一步代替跳過節點,需要用建立的另乙個指標來代替。

4-3、鍊錶逆置

1)重創乙個鍊錶,進行頭插法時,忘記保留頭節點位址。

解決方法:定義了l用來保留頭節點位址。

4-4.求鍊錶的倒數第m個元素

1)一開始的思路是用頭插法進行重制乙個鍊錶,那樣第m個元素就是原先鍊錶倒數第m個元素,第一次編譯錯誤,原因是題目要求不改變原鍊錶,審題不認真。解決方法:對原先鍊錶進行遍歷判斷是否為偶數,是的話刪除該節點。

5-4一元多項式的乘法與加法運算

1)一元多項式的乘法與加法運算這題,把**打好後編譯可以通過,但在使用時會出現錯誤,用除錯來找錯誤時結果又是正確的。

二、鍊錶學習總結

1、張藝琳:

1)對題4-1:建表分配記憶體就不說了 然後刪除偶數結點就是根據結點資料求2的餘數,若餘數為0,則此節點的next覆蓋,若餘數不為0,繼續向後遍歷。

2)題4-2:思路是用兩個指標,第乙個指標按順序將資料存入陣列,第二個指標也重頭開始往後掃,於是陣列裡面的資料就倒過來存在了鍊錶中。

2、江炳煌:

1)建立單鏈表等函式要注意返回頭指標,建立頭節點注意賦予空間,且next域置為null

2)對於刪除偶數節點的題目,遍歷鍊錶,當某節點資料不為偶數,要注意將指標域移動到下一節點,否則會導致錯誤。

3、鄭玉波:

1).設定空白頭節點後,在使用時要注意呼叫的是頭節點指向的下乙個節點的值,否則會導致賦值的錯誤。

3).鍊錶倒置

方法1 :新建乙個鍊錶,使用頭插法把值插入新錶中。

方法2:建立乙個空鍊錶,把原煉表頭節點指向null再把記錄下的下乙個節點指向頭節點,後面採用同樣方法(下乙個指向前乙個),最後讓新建空鍊錶指向原鍊錶最後乙個節點位置。

4、吳延彬

1)鍊錶是乙個比較難的結構體,剛開始時幾乎什麼都不懂,即使一直在看書、查資料也難以全部理解,需要與同學進行交流。鍊錶與之前所學的普通結構體有所不同,要注意的地方有很多,比如有了各種節點、不能只用乙個指標來指向各個資料、需要用null來進行定義等等。想要學好鍊錶,需要花費大量的時間,並且要與同學交流討論,自己乙個人做的效率很低。

三、小組未解決問題

1、鍊錶倒置

struct listnode *reverse( struct listnode *head ) *list;

void structure (list &l);

list add(list l1,list l2);

list multiplication (list l1,list l2);

void print(list l3,list l4);

void simplification(list &l);

int main()

list l1,l2,l3,l4,p,s,p1,p2;

structure (l1);

structure (l2);

l4=multiplication(l1,l2);

p=l1;

p1=l2;

l3=(list)malloc(sizeof(list));

p2=l3;

while(p1->next!=null)

s=(list)malloc(sizeof(list));

s->coefficient=p1->next->coefficient;

s->index=p1->next->index;

p2->next=s;

p2=s;

p1=p1->next;

while(p->next!=null)

s=(list)malloc(sizeof(list));

s->coefficient=p->next->coefficient;

s->index=p->next->index;

p2->next=s;

p2=s;

p=p->next;

p2->next=null;

simplification(l3);

print(l3,l4);

return 0;

void structure (list &l)

int i,j;

list p,s;

l=(list)malloc(sizeof(list));

p=l;

scanf("%d",&i);

for(j=0;js=(list)malloc(sizeof(list));

scanf("%d%d",&s->coefficient,&s->index);

p->next=s;

p=s;

p->next=null;

void simplification(list &l)

list p,s;

int i;

p=l;

while(p->next!=null)

i=p->next->index;

s=p->next;

while(s!=null)

if(s->next==null)

break;

if(s->next->index==i)

p->next->coefficient=p->next->coefficient+s->next->coefficient;

s->next=s->next->next;

s=s->next;

else s=s->next;

p=p->next;

list add(list l1,list l2)

list l3,p,s,p1,p2;

p=l1;

p1=l2;

l3=(list)malloc(sizeof(list));

p2=l3;

while(p1->next!=null)

s=(list)malloc(sizeof(list));

s->coefficient=p1->next->coefficient;

s->index=p1->next->index;

p2->next=s;

p2=s;

p1=p1->next;

while(p->next!=null)

s=(list)malloc(sizeof(list));

s->coefficient=p->next->coefficient;

s->index=p->next->index;

p2->next=s;

p2=s;

p=p->next;

p2->next=null;

simplification(l3);

return l3;

list multiplication (list l1,list l2)

list p1,p2,s,l3,p3;

p1=l1;

p2=l2;

l3=(list)malloc(sizeof(list));

p3=l3;

while(p1->next!=null)

p2=l2;

while(p2->next!=null)

s=(list)malloc(sizeof(list));

s->coefficient=p2->next->coefficient*p1->next->coefficient;

s->index=p2->next->index+p1->next->index;

p3->next=s;

p3=s;

p2=p2->next;

p1=p1->next;

p3->next=null;

simplification(l3);

return l3;

void print(list l3,list l4)

list p1,p2;

p1=l3;

p2=l4;

while(p2!=null)

if(p2->next->next==null)

break;

if(p2->next!=null)

printf("%d %d ",p2->next->coefficient,p2->next->index);

p2=p2->next;

printf("%d %d\n",p2->next->coefficient,p2->next->index);

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

if(p1->next->next==null)

break;

if(p1->next!=null)

printf("%d %d ",p1->next->coefficient,p1->next->index);

p1=p1->next;

printf("%d %d\n",p1->next->coefficient,p1->next->index);

藍精靈小組第二週小組討論學習總結

小組成員 20202410 聞寅瑩 20202412 姜和言 20202417 韓夢馨 20202430 王凱欣 經過個人自主學習和小組討論,我們對 電腦科學概論 第 四 五章內容有了大致的了解和更進一步的認識。經討論,我們組討論問題如下 1 如何用一種門表示其他的門?2 分不清rom和ram ra...

第二次小組討論

地點 課堂 在課堂上,小組成員略微討論了專案的資料流圖,但最終還是決定採用物件導向法進行建模。同時,我們確定需求規格說明書的分工工作,其中引言和任務概述由龔美珍完成,功能需求由肖小萌和潘妍共同完成,資料需求由龐鄧承銘完成,效能需求和其他需求由張嘉恆完成,執行需求由迪力完成。小組成員在完成自己的分工後...

第二小組 第十一周學習週報

一,學習如本週學習情況 1 何用l298n電機驅動模組與arduino實現pwm調速。2 學習小車的搭建。3 將程式燒寫到板子上。4 對紅外感測器的了解和使用 5 二,學習筆記 1 in1 4四個端子,是通過輸出高低電平來控制motora和motorb正反轉的,in1 2是一對控制motora,3 ...