PAT Basic 1075. 鏈表元素分類(25)(C語言實現(xiàn))

我的PAT系列文章更新重心已移至Github检激,歡迎來看PAT題解的小伙伴請到Github Pages瀏覽最新內(nèi)容。此處文章目前已更新至與Github Pages同步恶座。歡迎star我的repo胶台。

題目

給定一個單鏈表,請編寫程序?qū)㈡湵碓剡M(jìn)行分類排列署咽,使得所有負(fù)值元素都排在非負(fù)值元素的前面近顷,而 [0, K] 區(qū)間內(nèi)的元素都排在大于 K
的元素前面。但每一類內(nèi)部元素的順序是不能改變的宁否。例如:給定鏈表為 18→7→-4→0→5→-6→10→11→-2窒升,K 為 10,則輸出應(yīng)該為
-4→-6→-2→7→0→5→10→18→11慕匠。

輸入格式:

每個輸入包含一個測試用例饱须。每個測試用例第 1 行給出:第 1 個結(jié)點的地址;結(jié)點總個數(shù)台谊,即正整數(shù)N ( \le 10^5 )蓉媳;以及正整數(shù)K ( \le 10^3 )譬挚。結(jié)點的地址是 5 位非負(fù)整數(shù),NULL 地址用 -1 表示酪呻。

接下來有 N 行减宣,每行格式為:

Address Data Next

其中 Address 是結(jié)點地址;Data 是該結(jié)點保存的數(shù)據(jù)玩荠,為 [-10^5, 10^5] 區(qū)間內(nèi)的整數(shù)漆腌;Next
是下一結(jié)點的地址。題目保證給出的鏈表不為空阶冈。

輸出格式:

對每個測試用例闷尿,按鏈表從頭到尾的順序輸出重排后的結(jié)果鏈表,其上每個結(jié)點占一行女坑,格式與輸入相同填具。

輸入樣例:

00100 9 10
23333 10 27777
00000 0 99999
00100 18 12309
68237 -6 23333
33218 -4 00000
48652 -2 -1
99999 5 68237
27777 11 48652
12309 7 33218

輸出樣例:

33218 -4 68237
68237 -6 48652
48652 -2 12309
12309 7 00000
00000 0 99999
99999 5 23333
23333 10 00100
00100 18 27777
27777 11 -1

思路

這道題和1025 反轉(zhuǎn)連表是差不多的(所以同學(xué)們,刷題真的管用啊哈哈)匆骗。

這道題用了和1025題不一樣的方法灌旧,1025我使用數(shù)量剛剛好的數(shù)組存儲,對鏈表進(jìn)行了整理绰筛,然后數(shù)組順序就是鏈表順序。這道題我直接開了10^5的數(shù)組描融,把角標(biāo)當(dāng)作地址铝噩,直接讀取,是拿空間換時間的方法窿克。

這樣寫起來就很簡單了骏庸。

  • 開兩個大數(shù)組,角標(biāo)就是地址年叮,一個儲存數(shù)據(jù)具被,一個存儲鏈表下一個節(jié)點的地址。
  • 三次遍歷鏈表只损,依次輸出符合要求的結(jié)點一姿。

代碼

最新代碼@github,歡迎交流

#include <stdio.h>

int main()
{
    int data[100000] = {0}, next[100000] = {0},
        firstaddr, addr, lastaddr = -1, N, K;

    /* Read */
    scanf("%d %d %d", &firstaddr, &N, &K);
    for(int i = 0; i < N; i++)
    {
        scanf("%d", &addr);
        scanf("%d %d", data + addr, next + addr);
    }

    /* Scan three times */
    for(int i = 0; i < 3; i++)
    {
        /* Scan along the linked list */
        for(addr = firstaddr; addr != -1; addr = next[addr])
        {
            /* If the number fits the condition */
            if((i == 0 && data[addr] < 0)
            || (i == 1 && 0 <= data[addr] && data[addr] <= K)
            || (i == 2 && data[addr] > K))
            {
                /* Print */
                if(lastaddr != -1) printf(" %05d\n", addr);
                printf("%05d %d", addr, data[addr]);
                lastaddr = addr;
            }
        }
    }
    printf(" -1");

    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跃惫,一起剝皮案震驚了整個濱河市叮叹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌爆存,老刑警劉巖蛉顽,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異先较,居然都是意外死亡携冤,警方通過查閱死者的電腦和手機悼粮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來曾棕,“玉大人扣猫,你說我怎么就攤上這事≌隼伲” “怎么了苞笨?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長子眶。 經(jīng)常有香客問我瀑凝,道長,這世上最難降的妖魔是什么臭杰? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任粤咪,我火速辦了婚禮,結(jié)果婚禮上渴杆,老公的妹妹穿的比我還像新娘寥枝。我一直安慰自己,他們只是感情好磁奖,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布囊拜。 她就那樣靜靜地躺著,像睡著了一般比搭。 火紅的嫁衣襯著肌膚如雪冠跷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天身诺,我揣著相機與錄音蜜托,去河邊找鬼。 笑死霉赡,一個胖子當(dāng)著我的面吹牛橄务,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播穴亏,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蜂挪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嗓化?” 一聲冷哼從身側(cè)響起锅劝,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蟆湖,沒想到半個月后故爵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年诬垂,在試婚紗的時候發(fā)現(xiàn)自己被綠了劲室。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡结窘,死狀恐怖很洋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隧枫,我是刑警寧澤喉磁,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站官脓,受9級特大地震影響协怒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卑笨,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一孕暇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赤兴,春花似錦妖滔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陨帆,卻和暖如春曲秉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背歧譬。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搏存,地道東北人瑰步。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像璧眠,于是被迫代替她去往敵國和親缩焦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容