王道數(shù)據(jù)結(jié)構(gòu) 第二章 線性表(3) 編程題下半部分

  1. 假設(shè)有兩個(gè)元素值按遞增次序排列的線性表,均以單鏈表形式存儲(chǔ)打却,編寫算法將這兩個(gè)單鏈表歸并為一個(gè)按元素值遞減次序排列的單鏈表鸠匀,并要求利用原來(lái)兩個(gè)單鏈表的結(jié)點(diǎn)存放歸并后的單鏈表。
    (考慮到使用遞減排列洒试,故使用頭插法)
void unionDesc(linkList L1, linkList L2) {
    linkList p1 = L1->pNext, p2 = L2->pNext;
    linkList temp = nullptr;
    L1->pNext = nullptr; //任選其中一個(gè)鏈表的頭部作為頭指針
    while (p1 && p2) {
        if (p1->data <= p2->data) {
            temp = p1->pNext;
            p1->pNext = L1->pNext;
            L1->pNext = p1;
            p1 = temp;  //上述為頭插的基本操作,需要熟練掌握
        }
        else {
            temp = p2->pNext;
            p2->pNext = L1->pNext;
            L1->pNext = p2;
            p2 = temp;
        }
    }
    if (p1) {
        p2 = p1;
    }
    while (p2) {
        temp = p2->pNext;
        p2->pNext = L1->pNext;
        L1->pNext = p2;
        p2 = temp;
    }
    free(L2);
}
  1. 設(shè)A和B是兩個(gè)單鏈表(帶頭結(jié)點(diǎn))朴上,其中元素遞增有序垒棋,設(shè)計(jì)一個(gè)算法從A和B公共元素中產(chǎn)生單鏈表C,要求不破壞A,B的結(jié)點(diǎn)痪宰。
    注意要設(shè)置變量temp叼架,始終指向新鏈表的尾部畔裕。貌似沒(méi)啥難度吧。
linkList commonNodeList(linkList L1, linkList L2) {
    linkList p1 = L1->pNext, p2 = L2->pNext;
    linkList c = (linkList)malloc(sizeof(Node));
    linkList temp = c, t;
    while (p1 && p2) {
        if ( p1->data < p2->data ) {
            p1 = p1->pNext;
        }
        else if (p2->data < p1->data) {
            p2 = p2->pNext;
        }
        else {
            t = (linkList)malloc(sizeof(Node));
            t->data = p1->data;
            temp->pNext = t;
            temp = temp->pNext;
            p1 = p1->pNext;
            p2 = p2->pNext;
        }
    }
    temp->pNext = nullptr;
    return c;
}
  1. 已知兩個(gè)鏈表A和B分別表示兩個(gè)集合乖订,元素遞增排列扮饶,編制函數(shù),求A和B的交集乍构,并存放于A鏈表中甜无。(這一題和上一題的主要區(qū)別是,本題結(jié)果保留在原來(lái)的鏈表上哥遮,鏈表的其余部分需要進(jìn)行釋放发绢。)
void intersection(linkList &L1, linkList &L2) {
    linkList p1 = L1->pNext, p2 = L2->pNext, temp = L1;
    while (p1 && p2) {
        if (p1->data == p2->data) {
            temp->pNext = p1;
            temp = temp->pNext;
            linkList tNode = p2;
            p1 = p1->pNext;
            p2 = p2->pNext;
            free(tNode);//將不用的L2上的結(jié)點(diǎn)釋放
        }
        else if (p1->data < p2->data) {
            linkList tNode = p1;
            p1 = p1->pNext;
            free(tNode);
        }
        else {
            linkList tNode = p2;
            p2 = p2->pNext;
            free(tNode);
        }
    }
    while (p1) {
        linkList tNode = p1;
        p1 = p1->pNext;
        free(tNode);
    }
    while (p2) {
        linkList tNode = p2;
        p2 = p2->pNext;
        free(tNode);
    }
    temp->pNext = nullptr;
    free(L2);
}
  1. 兩個(gè)整數(shù)序列棠赛,A和B,已經(jīng)存入兩個(gè)單鏈表中,設(shè)計(jì)算法判斷B是否是A的連續(xù)子序列此再。
bool isSubsquence(linkList l1, linkList l2) {
    linkList p1 = l1->pNext, p2 = l2->pNext;
    while (p1 && p2) {
        if (p1->data == p2->data) {
            p1 = p1->pNext;
            p2 = p2->pNext;
        }
        else {
            p1 = p1->pNext;
            p2 = l2->pNext;
        }
    }
    if (p2 == nullptr) return 1;
    else return 0;
}

后面瑣碎待補(bǔ)较屿。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末最爬,一起剝皮案震驚了整個(gè)濱河市凫岖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌返咱,老刑警劉巖钥庇,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異咖摹,居然都是意外死亡评姨,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門萤晴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吐句,“玉大人,你說(shuō)我怎么就攤上這事店读∴率啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵屯断,是天一觀的道長(zhǎng)文虏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)殖演,這世上最難降的妖魔是什么氧秘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮趴久,結(jié)果婚禮上丸相,老公的妹妹穿的比我還像新娘。我一直安慰自己彼棍,他們只是感情好灭忠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布膳算。 她就那樣靜靜地躺著,像睡著了一般更舞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坎吻,一...
    開(kāi)封第一講書(shū)人閱讀 49,929評(píng)論 1 290
  • 那天缆蝉,我揣著相機(jī)與錄音,去河邊找鬼瘦真。 笑死刊头,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诸尽。 我是一名探鬼主播原杂,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼您机!你這毒婦竟也來(lái)了穿肄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤际看,失蹤者是張志新(化名)和其女友劉穎咸产,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體仲闽,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡脑溢,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赖欣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屑彻。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖顶吮,靈堂內(nèi)的尸體忽然破棺而出社牲,到底是詐尸還是另有隱情,我是刑警寧澤悴了,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布膳沽,位于F島的核電站,受9級(jí)特大地震影響让禀,放射性物質(zhì)發(fā)生泄漏挑社。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一巡揍、第九天 我趴在偏房一處隱蔽的房頂上張望痛阻。 院中可真熱鬧,春花似錦腮敌、人聲如沸阱当。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弊添。三九已至录淡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間油坝,已是汗流浹背嫉戚。 一陣腳步聲響...
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留澈圈,地道東北人彬檀。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像瞬女,于是被迫代替她去往敵國(guó)和親窍帝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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

  • 設(shè)計(jì)一個(gè)遞歸算法诽偷,刪除不帶頭結(jié)點(diǎn)的單鏈表L中的所有值為x的結(jié)點(diǎn)坤学。 在帶頭結(jié)點(diǎn)的單鏈表L中,刪除所有值為x的結(jié)點(diǎn)报慕,并...
    球球球球笨閱讀 1,440評(píng)論 1 1
  • 因?yàn)橹熬蛷?fù)習(xí)完數(shù)據(jù)結(jié)構(gòu)了拥峦,所以為了保持記憶,整理了一份復(fù)習(xí)綱要卖子,復(fù)習(xí)的時(shí)候可以看著綱要想具體內(nèi)容略号。 樹(shù) 樹(shù)的基本...
    牛富貴兒閱讀 6,840評(píng)論 3 10
  • 大學(xué)的時(shí)候不好好學(xué)習(xí),老師在講臺(tái)上講課洋闽,自己在以為老師看不到的座位看小說(shuō)玄柠,現(xiàn)在用到了老師講的知識(shí),只能自己看書(shū)查資...
    和玨貓閱讀 1,438評(píng)論 1 3
  • 酒桌上诫舅,碰杯羽利,喝酒,歡聲笑語(yǔ)刊懈,一切在新年到來(lái)之際顯得如此喜慶 工作了一年的艱辛这弧,在年會(huì)上,酒桌上虚汛,歡聲笑語(yǔ)中都顯得...
    芷渃蒹葭閱讀 402評(píng)論 6 8
  • 行走在田間 摘一把艷秋 迎風(fēng)妖嬈 看煙光暮云飛 陪老樹(shù)等昏鴉 悄然記錄 細(xì)碎的美好
    吳少如閱讀 206評(píng)論 0 9