【數(shù)據(jù)結(jié)構(gòu)】考研代碼總結(jié)

Chapter 2 線性表

2-1線性表的基本操作 書2.1.2

  • InitList(&L); //初始化線性表

  • Length(L); //求表長配乓,返回表長

  • LocationElem(L,e); //按值查找起宽,返回關(guān)鍵元素e的位置

  • GetElement(L,i); //按位查找浆兰,范圍指定位置元素值

  • ListInsert(&L,i,e); //指定位置i插入指定的元素

  • ListDelete(&L,i,&e);//刪除指定位置i的值撞叨,并用e返回被刪除元素值

  • PrintList(L); //輸出鏈表值

  • Empty(L); //判斷量表是否為空惜犀,并返回TRUE或FALSE

  • DestroyList(&L);//銷毀線性表尘奏,釋放線性表所占的空間

2-2將La表與Lb表合并到La表中

void Union(SqList *La, SqList Lb){
    ElemType e;
    int La_len,Lb_len;
    int i;
     //求兩個線性表的長度
     La_len = ListLength(*La);
     Lb_len = ListLength(Lb);
     for(i = 1; i < Lb_len; i++){
         e = GetElement(Lb,i);  //將第i個元素取出并賦值給e,每次變量e的值都會被修改
         if(!LocationElem(*La,e))   //在A中沒有找到B的元素牙甫,則插入
            ListInsert(La,++La_len,e);  //在La的末尾插入
     }//for       
}

2-3已知線性表La和Lb的數(shù)據(jù)元素按值非遞減排列

歸并La和Lb得到新的線性表Lc,Lc的數(shù)據(jù)元素也按值非遞減排

void MergeList(SqList La, SqList Lb, SqList *Lc)
{
    int i = 1, j = 1, k = 0;
    int La_len, Lb_len;
    ElemType ai,bj;
    InitList(Lc);
    //求兩個線性表的長度
    La_len = ListLength(La);
    Lb_len = ListLength(Lb);
    while(i <= La_len && j <= Lb_len){
        ai = GetElement(La,i);
        bj = GetElement(Lb,j);
        if(ai <= bj){
            ListInsert(Lc, ++k, ai);
            ++i;
        }
        else{
            ListInsert(Lc, ++k, bj);
            ++j;
        }
        while( i <= La_len) //表La非空且表Lb空
        {
            ai = GetElement(La, i++);
            ListInsert(Lc, ++k, ai);
        }
while( i <= La_len) //表La非空且表Lb空
        {
            ai = GetElement(La, i++);
            ListInsert(Lc, ++k, ai);
        }
    }
}

Chapter 3 棧和隊列

3-1 棧的基本操作

  • InitStack(&S) //初始化一個空棧
  • StackEmpty(S) //判斷一個棧是否為空掷酗,返回
  • Push(&S,x) //進(jìn)棧,若棧不滿窟哺,則加入x泻轰,使x成為新的棧頂
  • Pop(&S,&x) //出棧,若棧不為空且轨,則刪除棧頂元素復(fù)制給x浮声,并返回x
  • Getop(S,&x) //讀出棧頂元素虚婿,若棧不為空,則將棧頂元素賦值給x泳挥,并返回x
  • DestroyStack(&S) //銷毀棧

3-2 對于輸入的任意一個非負(fù)十進(jìn)制整數(shù)然痊,打印輸出與其等值的八進(jìn)制數(shù)

算法思路,將十進(jìn)制取模8依次進(jìn)棧屉符,再輸出

void conversion()
{
    SqStack s;
    unsigned n;
    ElemType e;
    InitStack(&s);
    scanf("%u",&n); //輸入非負(fù)的十進(jìn)制數(shù)
    while(n){   //當(dāng)n不等于0剧浸,所有余數(shù)入展
        Push(&s,n%8);   //入棧(n/8)的余數(shù)(8進(jìn)制的低位)
        n=n/8;
    }
    while(!EmptyStack(S)){  //當(dāng)棧不為空時
        Pop(&s,&e); //將棧元素彈出并賦值給e
        printf("%d",e); //輸出e
    }
    printf("\n");
}

3-3 對于輸入的字符串檢驗括號是否成對出現(xiàn)(假設(shè)只有())

bool Match(char exp[],int n)
{
    int i = 0;
    char e;
    bool match = true;
    LinkStNode *st;
    while(i < n && match){
        if(exp[i]=='(')
            Push(st,exp[i]);
        else if(exp[i]==')'){
            if(GetTop(st,e)==true){
                if(e!='(')
                    match = false;
                else    
                    Pop(st,e)
            }
            else match = false;
        }
        i++;
    }
    if(!StackEmpty(st))
        match = false;
    DestroyStack(st);
    return match;
}

3-4 隊列的基本操作

  • InitQueue(&Q) //初始化隊列,構(gòu)造一個空隊列
  • QueueEmpty(Q) //判斷隊列是否為空矗钟,并返回TRUE或FALSE
  • EnQueue(&Q,x) //入隊唆香,若隊列未滿,則將x加入隊列成為新的隊尾
  • DeQueue(&Q,&x) //出隊吨艇,若隊列不空躬它,則刪除隊頭元素,并將隊頭元素賦值給x返回
  • GetHead(Q,&x) //讀出隊頭元素秸应,若隊列非空則將隊頭元素賦值給x并返回

Chapter 4 樹與二叉樹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虑凛,一起剝皮案震驚了整個濱河市碑宴,隨后出現(xiàn)的幾起案子软啼,更是在濱河造成了極大的恐慌,老刑警劉巖延柠,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祸挪,死亡現(xiàn)場離奇詭異,居然都是意外死亡贞间,警方通過查閱死者的電腦和手機(jī)贿条,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來增热,“玉大人整以,你說我怎么就攤上這事【穑” “怎么了公黑?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長摄咆。 經(jīng)常有香客問我凡蚜,道長,這世上最難降的妖魔是什么吭从? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任朝蜘,我火速辦了婚禮,結(jié)果婚禮上涩金,老公的妹妹穿的比我還像新娘谱醇。我一直安慰自己暇仲,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布副渴。 她就那樣靜靜地躺著熔吗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佳晶。 梳的紋絲不亂的頭發(fā)上桅狠,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音轿秧,去河邊找鬼中跌。 笑死,一個胖子當(dāng)著我的面吹牛菇篡,可吹牛的內(nèi)容都是我干的漩符。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驱还,長吁一口氣:“原來是場噩夢啊……” “哼嗜暴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起议蟆,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闷沥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咐容,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體舆逃,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年戳粒,在試婚紗的時候發(fā)現(xiàn)自己被綠了路狮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔚约,死狀恐怖奄妨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苹祟,我是刑警寧澤砸抛,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站苔咪,受9級特大地震影響锰悼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜团赏,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一箕般、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舔清,春花似錦丝里、人聲如沸曲初。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臼婆。三九已至,卻和暖如春幌绍,著一層夾襖步出監(jiān)牢的瞬間颁褂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工傀广, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留颁独,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓伪冰,卻偏偏與公主長得像誓酒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贮聂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,941評論 2 355

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