C 實現多組資料合併輸出

2022-07-22 04:57:11 字數 1713 閱讀 2666

思路

假設有多組資料,每一組都是按從小到大的順序輸入的,設計如下資料結構

前面一列是每一組資料的首部,後面是真正的資料,首部的定義為:

struct

head ;

資料部分的定義為:

struct

node ;

1.我們稱左上角為根,左下角為尾,根的前指標(up)和尾的後指標(down)為null,next指向資料,那麼在輸出的時候,只需要遍歷第二列選出最小的資料即可,在輸出該結點之後將該節點刪除,並更新該資料結構。

2.定義兩個指標p和q,分別用來遍歷和指向最小資料。

a.如果q(指向最小資料的指標)指到了根,並且p->next->next=null,則表示根所在的一行已經輸出完畢,需要更新根,於是判斷根的下指標是否也為null,如果是,表示已經結束,如果不是則將下一行首部設定為根。

b.如果p->next->next不等於null,則只需要將p的next指向p的next的next即p->next = p->next->next。

c.如果q指向除根以外的首部,並且,後面有多的資料,則p->next = p->next->next,如果沒有多餘資料表示這一行已經全部輸出,刪除p和p->next指向的空間,並將p的上一行的首部的下指標指向p的下一行的首部,下一行的上指標指向p的上一行首部。

3.輸出的時候只需要當前資料與前乙個輸出的資料不同即可。

**:

1

namespace

sort ;

7struct head ;

12void create(node*&root)

23return;24

}25void destory(head*&root)

37else40}

41if (q->next->data !=num)

45if (q->up ==null)

53 root->down->up =null;

54 root = root->down;

55delete p->next;

56delete

p;57 p = q =root;58}

59else

66 }//

if67

else

75else

80 p = q =root;81}

82else

//else

89 }//

else

90 }//

while91}

92void createhead(int n)

109destory(root);

110}

111 }

呼叫:

1

intmain()

執行結果:

python對齊輸出多組列表資料

m list range 1,13 變數1 月份 q 1002,2150,4482,4028,8764,10410,12057,21047,18540,10042,3972,2240 變數2 月平均流量 m 3 s h 620.00,618.24,617.87,622.86,626.57,630.5...

Python中如何實現多組的輸入輸出

n int input 輸入乙個整數 a,b map int,input split 輸入兩個整數 c list map int,input split 輸入乙個列表 d list map int,input split 輸入乙個矩陣 多組資料的輸入 while true try a,b,c map...

多組資料的輸入方法(c語言)

例題 給定兩個整數a,b,求這兩個數之和 輸入 輸入資料有多行。每行資料中含有兩個整數a,b 0 a,b 109 輸出 對每行資料,輸出對應的a b的值。樣例輸入 123 500 60 80 70 90 樣例輸出 623140 160 實現 include intmain return0 在有些題目...