數(shù)組模擬單鏈表券盅,雙鏈表

單鏈表
雙鏈表
這兩道題有一種好寫(xiě)的寫(xiě)法帮哈,就是左右建立哨兵,然后就不需要考慮邊界渗饮,數(shù)組模擬鏈表我還是習(xí)慣性寫(xiě)結(jié)構(gòu)體帶next的寫(xiě)法但汞,更容易理解吧宿刮。

#include<iostream>
using namespace std;
int m,idx;
const int N=100005;
struct node
{
    int val,next;
}a[N];

void init()
{
    a[0].next=1;
    idx=2;
}
//在第k個(gè)數(shù)右邊插入x
void insert(int k,int x)
{
    a[idx].val=x;
    a[idx].next=a[k].next;
    a[k].next=idx++;
}

void del(int k)
{
    a[k].next=a[a[k].next].next;
}

int main()
{
    init();
    string s;
    int x,k;
    cin>>m;
    while(m--)
    {
        cin>>s;
        if(s=="H")
        {
            cin>>x;
            insert(0,x);
        }
        else if(s=="D")
        {
            cin>>k;
            if(k==0)
                del(0);
            else
                del(k+1);
        }
        else
        {
            cin>>k>>x;
            insert(k+1,x);
        }
    }    
    for(int i=a[0].next;i!=1;i=a[i].next)
    {
        cout<<a[i].val<<" ";
    }
    cout<<endl;
}

先初始化0,1節(jié)點(diǎn),真正的節(jié)點(diǎn)從2開(kāi)始賦值私蕾,insert的時(shí)候僵缺,都需要先考慮新插入的點(diǎn),先寫(xiě)長(zhǎng)的式子踩叭,最后遍歷輸出從0節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)開(kāi)始磕潮,到1節(jié)點(diǎn)的前面那個(gè)節(jié)點(diǎn)。

#include<iostream>
using namespace std;
const int N=1e5;
struct node
{
    int val,pre,next;
}a[N];
int idx;
void init()
{
    a[0].next=1;
    a[1].pre=0;
    idx=2;
}

//表示在第k個(gè)插入的數(shù)右側(cè)插入一個(gè)數(shù)
void insert(int x,int k)
{
    a[idx].val=x;
    a[idx].pre=k;
    a[idx].next=a[k].next;
    a[a[k].next].pre=idx;
    a[k].next=idx;
    idx++;
}
//將第k個(gè)插入的數(shù)刪除
void del(int k)
{
    a[a[k].next].pre=a[k].pre;
    a[a[k].pre].next=a[k].next;
}

int main()
{
    init();
    int m,x,k;
    cin>>m;
    string s;
    while(m--)
    {
        cin>>s;
        if(s=="L")
        {
            cin>>x;
            insert(x,0);
        }
        else if(s=="R")
        {
            cin>>x;
            insert(x,a[1].pre);
        }
        else if(s=="D")
        {
            cin>>k;
            del(k+1);//k+1
        }
        else if(s=="IL")
        {
            cin>>k>>x;
            insert(x,a[k+1].pre);
        }
        else
        {
            cin>>k>>x;
            insert(x,k+1);
        }
    }
    for(int i=a[0].next;i!=1;i=a[i].next)
    {
        cout<<a[i].val<<" ";
    }
    cout<<endl;
}

這樣單鏈表和雙鏈表都可以通過(guò)insert和del操作完成所有的基本操作容贝,不需要分析邊界自脯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市斤富,隨后出現(xiàn)的幾起案子膏潮,更是在濱河造成了極大的恐慌,老刑警劉巖满力,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件焕参,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡油额,警方通過(guò)查閱死者的電腦和手機(jī)叠纷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)潦嘶,“玉大人涩嚣,你說(shuō)我怎么就攤上這事〉嘟” “怎么了航厚?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)看峻。 經(jīng)常有香客問(wèn)我阶淘,道長(zhǎng),這世上最難降的妖魔是什么互妓? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任溪窒,我火速辦了婚禮,結(jié)果婚禮上冯勉,老公的妹妹穿的比我還像新娘澈蚌。我一直安慰自己,他們只是感情好灼狰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布宛瞄。 她就那樣靜靜地躺著,像睡著了一般交胚。 火紅的嫁衣襯著肌膚如雪份汗。 梳的紋絲不亂的頭發(fā)上盈电,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音杯活,去河邊找鬼匆帚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛旁钧,可吹牛的內(nèi)容都是我干的吸重。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼歪今,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼嚎幸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寄猩,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嫉晶,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后田篇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體车遂,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年斯辰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坡疼。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡彬呻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柄瑰,到底是詐尸還是另有隱情闸氮,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布教沾,位于F島的核電站蒲跨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏授翻。R本人自食惡果不足惜或悲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望堪唐。 院中可真熱鬧巡语,春花似錦、人聲如沸淮菠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)合陵。三九已至枢赔,卻和暖如春澄阳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背踏拜。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工碎赢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人执隧。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓揩抡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親镀琉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子峦嗤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 鏈表(下):如何輕松寫(xiě)出正確的鏈表代碼? 上一節(jié)我講了鏈表相關(guān)的基礎(chǔ)知識(shí)抖单。學(xué)完之后逸尖,我看到有人留言說(shuō),基礎(chǔ)知識(shí)我都...
    GhostintheCode閱讀 1,303評(píng)論 2 3
  • 如何輕松寫(xiě)出正確的鏈表代碼魔招? 理解指針或引用的含義 1.含義:將某個(gè)變量(對(duì)象)賦值給指針(引用),實(shí)際上就是就是...
    二毛_220d閱讀 307評(píng)論 0 1
  • 最近在復(fù)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),感觸頗深挽鞠。 推薦程序員們有時(shí)間都可以復(fù)習(xí)下疚颊, 數(shù)據(jù)結(jié)構(gòu)不僅僅是一門(mén)課程, 它更能理清我們開(kāi)發(fā)...
    Bobby0322閱讀 3,077評(píng)論 0 4
  • (上)如何實(shí)現(xiàn)LRU緩存淘汰算法? 一信认、什么是鏈表材义? 1.和數(shù)組一樣,鏈表也是一種線(xiàn)性表嫁赏。2.從內(nèi)存結(jié)構(gòu)來(lái)看其掂,鏈表...
    碼語(yǔ)生活閱讀 318評(píng)論 0 0
  • 上次有同學(xué)講到了鏈表,剛好我也學(xué)了一下潦蝇,總結(jié)一下自己的學(xué)習(xí)過(guò)程款熬,方便自己以后回顧。有疑惑的地方隨時(shí)可以咨詢(xún)我攘乒,有錯(cuò)...
    MuteZ閱讀 3,088評(píng)論 0 1