給定一個鏈表結構,其中每個節點代表一個鏈表和 包含其類型的兩個指針:函數變平到單個列表
(I)指向下一個節點中的主列表。 (ii)指向該節點頭部的鏈接列表的指針。
編寫一個C函數將列表平鋪到單個鏈表中。
例如,
如果給定鏈表
1 -- 5 -- 7 -- 10
| | |
2 6 8
| |
3 9
|
4
然後將其轉換爲
1 - 2 - 3 - 4 - 5 - 6 - 9 - 7 - 8 -10
我的解決方案
struct node {
int data;
struct node *fwd; //pointer to next node in the main list.
struct node *down; //pointer to a linked list where this node is head.
}*head,*temp,*temp2;
temp=head;
while(temp->fwd!=NULL) {
temp2=temp->fwd;
while(temp->down!=NULL) {
temp=temp->down;
}
temp->down=temp2;
temp->fwd=NULL;
temp=temp2;
}
PLZ通知我如果有什麼......其他的解決方案和優化是歡迎
我的解決辦法: 結構節點 { int數據; struct node * fwd; //指向主列表中下一個節點的指針。 struct node * down; //指向此節點所在鏈接列表的指針。 } * head,* temp,* temp2; temp = head; (temp-> fwd!= NULL) temp2 = temp-> fwd; (temp-> down!= NULL) temp = temp-> down; } temp-> down = temp2; temp-> fwd = NULL; temp = temp2; } PLZ通知我,如果有任何其他解決方案和優化,歡迎 – 2010-12-20 07:56:50
:::::作業? – wilhelmtell 2010-12-20 07:56:58
@wilhelmtell:從寫作的方式來猜測你是對的。 – sjngm 2010-12-20 08:05:17