【問題描述】
兩個非降序鍊錶的並集,例如將鍊錶1->2->3 和 2->3->5 並為 1->2->3->5,只能輸出結果,不能修改兩個鍊錶的資料。
【輸入形式】
第一行為第乙個鍊錶的各結點值,以空格分隔。
第二行為第二個鍊錶的各結點值,以空格分隔。
【輸出形式】
合併好的鍊錶,以非降序排列,值與值之間以空格分隔。
【樣例輸入】
4 7 10 34
1 4 6 29 34 34 52
【樣例輸出】
1 4 6 7 10 29 34 52
【評分標準】
要使用鍊錶實現,否則不能得分。
#include
#include
#include
#define ok 1
#define overflow -2
typedef
int elemtype;
typedef
int status;
typedef
struct lnodelnode,
*linklist;
status initlist_l
(linklist *l)
status createlist_hl
(linklist *l)
}return ok;
}status mergelist_l
(linklist l1,linklist l2,linklist *l3)
p1=p1->next;
}else
p2=p2->next;}}
if(!p1)
p2=p2->next;
} q->next=
null;}
else
p1=p1->next;
} q->next=
null;}
return ok;
}status printlist_l
(linklist l)
printf
("\n");
return ok;
}int
main()
合併兩個鍊錶
就是簡單的合併兩個鍊錶,這裡要求倆個鍊錶是有序的。比如 1 2 3 4 5 和 0 7 13 合併之後為 0 1 2 3 4 5 7 13 首先,簡單介紹一下思路,首先區遍歷倆個鍊錶,如果第乙個鍊錶的值小於等於第二個鍊錶的值,那麼將第乙個鍊錶的值插入乙個新的頭節點 鍊錶中,反之如果大於第二個鍊錶的值...
合併兩個鍊錶
1.問題描述description 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 42.思路 將頭部較小的鍊錶的節點與另乙個鍊錶合併,遞迴解答。退出條件為 當乙個鍊錶為空時,返回另乙個鍊錶...
合併兩個有序鍊錶 C
合併兩個有序鍊錶 遞迴實現 演算法思想 遞迴終止條件 若head1為空,返回head2指標 head 若head2為空,返回head1指標 head 遞迴過程 1 若head1 data head2 data head 指標應該指向head2所指向的節點,而且head next應該指向head1和h...