18925 試卷排序(雙向鍊錶)
description
老師要將n張試卷重新排序,每張試卷都有編號為1∼n,採取如下的方法:
先將編號1的試卷放進佇列,剩下從第2張到第n張依次放入佇列,
放入的時候老師會把編號i的試卷插入到編號為x試卷之前或之後(x輸入格式
第1行為乙個正整數n,表示了有n張試卷。
第2-n行,第i行包含兩個整數x,p,其中x為小於i的正整數,p為0或者1。
若p為0,則表示將第編號為i的試卷放入編號為x試卷的左邊,為1則放入x試卷的右邊。
輸出格式
輸出n個整數,表示完成插入後試卷系列中試卷的編號(1<=n<=100000)。
輸入樣例
41 0
2 11 0
輸出樣例
2 3 4 1
// 參考了大佬的思路,用陣列代替雙向鍊錶,a[1][1]是自身,a[1][2]代表左邊 a[1][3]代表右邊 並且記錄第乙個數字。
//不用雙向鍊錶是因為不會--。--
// an highlighted block
#include
#include
int main()
else
} int ans =start;
for(int i=
1;i<=n;i++
)return0;
}
1101 填空題 鍊錶的排序 SCAU
題目 先建立乙個鍊錶 鍊錶中各結點未按學號由小到大排序 然後呼叫sort函式,將鍊錶中各結點按學號由小到大排序。法一 超時 這個題我一開始的思路是利用冒泡的思想,當當前結點比next結點大的時候,交換兩者next所指向內容。比如鍊錶1 5 4 6 當指標p指向5所在結點的時候,發現p next的nu...
四 C 雙向鍊錶排序
建立乙個長度為n的帶頭結點的雙向鍊錶,使得該鍊錶中的資料元素遞增有序排列。必須使用雙向鍊錶完成,資料型別為整型。輸入第一行 雙向表的長度 第二行 鍊錶中的資料元素。輸出 輸出雙向鍊錶中的資料元素的值。樣例輸入 10 2 4 6 3 5 8 10 21 12 9樣例輸出 2 3 4 5 6 8 9 1...
雙向鍊錶的歸併排序
歸併排序分為兩個部分 mergesort和merge mergesort是乙個遞迴函式,在這個函式裡面把待排序的陣列或鍊錶分段,直到每段的長度為1為止。merge在這個函式中把分開的兩段結合起來,並且在結合的過程中排序 對於乙個陣列用歸併排序是比較方便的,而在對雙向鍊錶用歸併排序時就會發現next ...