資料結構 C語言單連結串列的合併 100分

時間 2021-05-05 20:56:30

1樓:匿名使用者

#include

#include

#include

typedef struct list

list;

void creatlist(list * p,int length)

else

else r=r->next;

}} }}

void showlist(list * p)printf("\n");

}void merlist(list * p)} r=p1;

if(r)

q=r;

r=r->next;

}r=q;

q=p0->next;

p0->next=p1;

p1=r->next;

r->next=q;

p0=r;

r=p1;

}}if(p1)

p0->next=p1;

}int main()

;srand(time(null));

for(i=0;i<2;i++)

merlist(p);

printf("\nafter merge:\n");

showlist(p[0]);

getchar();

return 0;}

2樓:匿名使用者

#include

#include

#include

struct lnode

;typedef lnode* linklist;

linklist *unio(linklist *p,linklist *q) //合併

else

}if(pa->next!=null)

ra->next=pa;

if(qa->next!=null)

ra->next==qa;

return r;

} // createlist_lvoid main()

while(q!=null)

//上面建立完後,下面合併並輸出

linklist uniohead;

合併linklist myunio = uniohead ->next;

while(myunio!=null) //輸出 }

3樓:匿名使用者

樓上的沒有對單連結串列分別排序,並且兩個連結串列的長度不一定相同,而樓主卻設定兩個連結串列長度相同。

資料結構c語言單連結串列的建立,插入刪除和合並程式**

4樓:匿名使用者

你看這個應該滿足要求吧。我把三種迴圈方式都用上了:

#include

#include

int isprime(int n)

return 1;

}void main()

while(++i<3);

if(i==3) exit(0);

printf("prime submultiples:\n");

i=1;

n=0;

while(i<=a)

i++;}

資料結構(c語言)單連結串列的問題

5樓:匿名使用者

/*這是結果,需要的話給我個地址

------------------------***建立含有n個資料元素的帶頭結點的單連結串列***請輸入n = 5

請輸入第1個元素:1

請輸入第2個元素:2

請輸入第3個元素:3

請輸入第4個元素:4

請輸入第5個元素:5

依次輸出該表中各元素的值:1 2 3 4 5將單連結串列進行逆置運算:

依次輸出逆置後表中各元素的值:5 4 3 2 1press any key to continue------------------------------*/

資料結構(c語言)用單連結串列儲存一元多項式,並實現兩個多項式的相加運算

資料結構(c語言)用單連結串列儲存一元多項式,並實現兩個多項式的相加運算,怎麼做?

資料結構c語言 用單連結串列儲存一元多項式,並實現兩個多項式的相加運算(語法沒有錯誤)可能指標錯了

6樓:無淚

裡面的演算法有點問題!

我依照你的演算法,補充了一下程式!裡面新編寫了一個函式void copylist(linklist * a,linklist *b) ;

同時做了一點修改!也許,程式的可讀性不好,你可以自己再修改!**如下:

#include

#include

#define max 20 //多項式最多項數

typedef struct elemtype;

typedef struct lnode

linklist;

r->next=null; }/*

將一個連結串列的部分或全部結點複製到另一個連結串列中,

a是新連結串列的最後一個結點,b是被複制連結串列的某一結點

即讓要複製的結點加到新連結串列的尾部*/

void copylist(linklist * a,linklist *b) //

last->next=null; //新連結串列尾結點中next指標的值設為null,即新連結串列建立完成

銷燬連結串列

free(pre);

} void displist(linklist *l)

printf("\n");

}

}/*下面其他兩種情況的處理都是同一個道理,

在比較過程中,只要其中一個連結串列的所有結點都遍歷了,

此時只需要將另一個連結串列的剩餘結點都加到p3中,就可以完成連結串列的合併

*/else if ((p->data.exp) == (q->data.exp))

if (q->next != null)

q = q->next;

else

}else

}}/*在建立連結串列過程中,指標p3的值一直在改變,因此在完成合並連結串列後必須使p3指向頭結點*/

p3=head;

}void bubblesort(elemtype st,int n)}}

void main()

, , , , };

elemtype st2 = , , , , };

bubblesort(st1, num1);

bubblesort(st2, num2);

createlistr(l1, st1, num1);

createlistr(l2, st2, num2);

displist(l1);

displist(l2);

add(l1, l2, l3);

displist(l3);

destroylist(l1);

destroylist(l2);

destroylist(l3);}

c語言資料結構,單連結串列中的頭插法求解釋

l這個頭結點是不儲存資料的,l next l的下個結點才儲存資料,為實際的第一個結點 s next l next 新插入的結點s放在第一個結點前面,變為新的第一個結點,l next s 這句讓l next指向新的第一個結點 l next改為l s next l l s可以,這樣頭指標就是實際儲存資料...

C語言資料結構,C語言 資料結構

include include defineinfinity0 definemax vertex num10 最大頂點數 definemax edge num40 最大邊數typedefenumgraphkind typedefcharvertextype 頂點資料型別typedefstructar...

資料結構c語言描述,資料結構(C語言描述)

include include include define datatype int define maxsize 1000 typedef struct nodebitreenode datatype bt maxsize bitreenode buildbtree datatype bt,in...