思路
假設有多組資料,每一組都是按從小到大的順序輸入的,設計如下資料結構
前面一列是每一組資料的首部,後面是真正的資料,首部的定義為:
struct資料部分的定義為:head ;
struct1.我們稱左上角為根,左下角為尾,根的前指標(up)和尾的後指標(down)為null,next指向資料,那麼在輸出的時候,只需要遍歷第二列選出最小的資料即可,在輸出該結點之後將該節點刪除,並更新該資料結構。node ;
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 在有些題目...