1. 程式人生 > >第四周 單鏈表的應用(2)

第四周 單鏈表的應用(2)

煙臺大學計算機與控制工程學院 
        
作    者:     郝環宇
完成日期:     9.23

問題描述:2、已知L1和L2分別指向兩個單鏈表的頭結點,且已知其長度分別為m、n,
 請設計演算法將L2連線到L1的後面。實現這個演算法,完成測試,並分析這個演算法的複雜度。
輸入描述:若干資料 。    

程式輸出:連結串列合併後的資料。 

演算法庫連結

int main()

{
    LinkList *A, *B;
    int i;
    ElemType a[]= {1,3,2,9};
    ElemType b[]= {0,4,7,6,5,8};
    InitList(A);
    for(i=3; i>=0; i--)
        ListInsert(A, 1, a[i]);
    InitList(B);
    for(i=5; i>=0; i--)
        ListInsert(B, 1, b[i]);
    Link(A, B);
    printf("A:");
    DispList(A);
    DestroyList(A);
    return 0;
}


void Link(LinkList*& l,LinkList *&m)
{
	LinkList *p;
	p=l;
	while(p->next!=NULL)
	{
		p=p->next;
	}
	p->next=m->next;
	free(m);
}
執行結果:



心得體會:

這個問題比較簡單,只是把第二個連結串列的頭指標連到第一個連結串列末尾,在釋放掉第二個連結串列的頭指標即可。