第四周 單鏈表的應用(2)
阿新 • • 發佈:2019-02-08
煙臺大學計算機與控制工程學院
作 者: 郝環宇
完成日期: 9.23
問題描述:2、已知L1和L2分別指向兩個單鏈表的頭結點,且已知其長度分別為m、n,
請設計演算法將L2連線到L1的後面。實現這個演算法,完成測試,並分析這個演算法的複雜度。
輸入描述:若干資料 。
作 者: 郝環宇
完成日期: 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); }
心得體會:
這個問題比較簡單,只是把第二個連結串列的頭指標連到第一個連結串列末尾,在釋放掉第二個連結串列的頭指標即可。