女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解數(shù)據(jù)結(jié)構(gòu)中棧的定義和操作

OSC開源社區(qū) ? 來源:OSCHINA 社區(qū) ? 2023-04-27 14:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.棧的定義

棧(stack):是只允許在一端進行插入或者刪除操作的線性表(即后進先出,大概可以理解為吃飽了吐出來)

空棧:不含元素的空標配

棧頂:表尾端

棧底:表頭端

dfc737aa-e4c0-11ed-ab56-dac502259ad0.png

進棧順序:a1->a2->a3->a4->a5

出棧順序:a5->a4-a3->a2->a1

2. 對比線性表和棧基本操作

2.1 線性表的基本操作

InitList (&L): 初始化表。構(gòu)造一個空的線性表 L,分配內(nèi)存空間

DestoryList (&L): 銷毀操作。銷毀線性表,并且釋放線性表 L 所占用的空間

ListInsert (&L,i,e): 插入操作,在表 L 中的第 i 個位置上插入指定元素 e

ListDelete (&L,i,e): 刪除操作,刪除表 L 中的第 i 個位置的元素,并且用 e 返回刪除元素的值

LocateElem (L,e): 按值查找操作,在表 L 中查找具有給定關(guān)鍵字值的元素

GetElem (L,i): 按位查找操作,獲取表 L 中第 i 個位置的元素的值

2.2 棧的基本操作

InitStack (&S): 初始化棧,構(gòu)造一個空棧 S,分配內(nèi)存空間

DestoryStack (&S): 銷毀棧,銷毀并釋放棧 S 所占用的內(nèi)存空間

Push (&S,x): 進棧,若棧 S 未滿,則將 x 加入使之成為新的棧頂

Pop (&S,&x): 出棧,若棧 S 非空,則彈出棧頂元素,并用 x 返回

GetTop (S,&x): 讀棧頂元素,若棧 S 非空,則用 x 返回棧頂元素

其他常見操作:StackEmpty (S): 判斷一個棧 S 是否為空,若 S 為空,則返回 true,否則返回 false

3. 順序棧

dfe74b12-e4c0-11ed-ab56-dac502259ad0.png

3.1 順序棧的定義

#define MaxSize 10           //定義棧中元素的最大個數(shù) 
typedef struct{
 ElemType data[MaxSize];   //靜態(tài)數(shù)組存放棧中的元素
    int top;      //棧頂指針
}SqStack;         //結(jié)構(gòu)體重命名

聲明一個順序棧后就會在內(nèi)存中分配一整片連續(xù)的空間,其中內(nèi)存大小為:MaxSize*sizeof (ELemType)

void testStack(){
 SqStack S; //聲明一個順序棧
}

3.2 棧的初始化操作

由于棧頂指針 top 需要指向此時棧頂元素,所以讓 top 指向 0 是不合理的,可以初始化讓 top 指向 - 1; 判斷一個棧是否為空,即判斷 S.top 是否等于 - 1 初始化棧:

void Inittack(SqStack){
 SqStack S;   //聲明一個順序棧
 S.top=-1;
}

判斷棧空:

bool StackEmpty(SqStack S){
    if(S.top==-1)      //棧空
        return true;
    else 
        return false;  //非空
}

3.3 進棧操作

分析:

判斷棧是否為空

棧頂指針 + 1

新元素入棧

bool Push(SqStack &S,ElemType x){
 if(S.top==NaxSize-1)
        return false;
 S.top+=1;
 S.data[S.top]=x;
        return true;
}

3.4 出棧操作

bool Push(SqStack &S,ElemType &x){
 if(S.top==-1)
        return false;
    x=S.data[S.top--];
        return true;
}

3.5 讀棧頂元素操作

bool GetTop(SqStack &S,ElemType &x){
 if(S.top==-1)
        return false;
    x=S.data[S.top];
        return true;
}

4. 共享棧

兩個棧共享同一片空間

#define MaxSize 10           //定義棧中元素的最大個數(shù) 
typedef struct{
 ElemType data[MaxSize];   //靜態(tài)數(shù)組存放棧中的元素
    int top0;     //0號棧棧頂指針
    int top1;     //1號棧棧頂指針
}SqStack;         //結(jié)構(gòu)體重命名
初始化棧:
void InitStack(ShStack &S){
 S.top0=-1;
 S.top1=MaxSize;
}

5. 鏈棧的定義

進棧 / 出棧都只能在棧頂一段進行

鏈頭作為棧頂

typedef struct Linknode{
 ElemType data;           //數(shù)據(jù)域
    struct Linknode *next;   //指針域
}*LiStack                    //棧類型定義






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:詳解數(shù)據(jù)結(jié)構(gòu)中棧的定義和操作

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    一文詳解Linux的各種

    (push) 和 彈出 (pop) 操作。根據(jù)的特點,很容易的想到可以利用數(shù)組,來實現(xiàn)這種數(shù)據(jù)結(jié)構(gòu)。但是本文要討論的并不是軟件層面的,而是硬件層面的
    發(fā)表于 09-28 14:51 ?1451次閱讀

    數(shù)據(jù)結(jié)構(gòu)

    1.數(shù)據(jù)結(jié)構(gòu)的概念 所謂數(shù)據(jù)結(jié)構(gòu)是指由某一數(shù)據(jù)對象及該對象中所有數(shù)據(jù)成員之間的關(guān)系組成的集合。成員之間的關(guān)系有很多種,最常見的是前后件關(guān)系。 2.
    發(fā)表于 03-04 14:13

    大話數(shù)據(jù)結(jié)構(gòu)pdf下載

    大話數(shù)據(jù)結(jié)構(gòu)是一本很值得初學者看的編程書籍,用簡單的語言然人深刻的理解數(shù)據(jù)結(jié)構(gòu),強烈程序員推薦下載收藏,下面是部分內(nèi)容預覽: 完整的pdf格式電子書下載: 《大話數(shù)據(jù)結(jié)構(gòu)》.pdf
    發(fā)表于 07-04 00:33

    收藏 | 程序員面試,你必須知道的8大數(shù)據(jù)結(jié)構(gòu)

    本文我們介紹了應對程序員面試過程,必須掌握的幾大數(shù)據(jù)結(jié)構(gòu)。幾乎所有的問題都需要面試者對數(shù)據(jù)結(jié)構(gòu)有深刻的理解。無論你是初入職場的新兵(剛從大學或者編程培訓班畢業(yè)),還是擁有幾十年經(jīng)驗的職場老鳥。有些
    發(fā)表于 09-30 09:35

    常見的數(shù)據(jù)結(jié)構(gòu)

    的,那樣對于數(shù)據(jù)的使用簡直是個悲劇。針對此類數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)提供了圖存儲結(jié)構(gòu),專門用于存儲這類數(shù)據(jù)。二、數(shù)
    發(fā)表于 05-10 07:58

    數(shù)據(jù)結(jié)構(gòu)之鏈式介紹

    數(shù)據(jù)結(jié)構(gòu)之鏈式鏈式鏈式定義鏈式操作的實現(xiàn)鏈
    發(fā)表于 12-17 08:11

    數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作

    嵌入式學習基礎(chǔ)-數(shù)據(jù)結(jié)構(gòu)鏈表的基本操作鏈表節(jié)點采用結(jié)構(gòu)體的方式進行定義,下面是最基礎(chǔ)的定義只有一個數(shù)據(jù)
    發(fā)表于 12-22 08:05

    java數(shù)據(jù)結(jié)構(gòu)學習

    數(shù)據(jù)結(jié)構(gòu)是對計算機內(nèi)存數(shù)據(jù)的一種安排,數(shù)據(jù)結(jié)構(gòu)包括 數(shù)組, 鏈表, , 二叉樹, 哈希表等,算法則對對這些
    發(fā)表于 11-29 09:46 ?877次閱讀

    什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學習數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的應用實例分析

    本文檔的主要內(nèi)容詳細介紹的是什么是數(shù)據(jù)結(jié)構(gòu)?為什么要學習數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的應用實例分析包括了:數(shù)據(jù)結(jié)構(gòu)在串口通信當中的應用,數(shù)據(jù)結(jié)構(gòu)在按鍵
    發(fā)表于 09-26 15:45 ?14次下載
    什么是<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?為什么要學習<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>的應用實例分析

    什么是?數(shù)據(jù)結(jié)構(gòu)如何實現(xiàn)

    今天放松一下,我們來看看數(shù)據(jù)結(jié)構(gòu),這節(jié)的知識點可以說是數(shù)據(jù)結(jié)構(gòu)中最容易上手的知識點了,其實比起鏈表,其實鏈表也有和隊列的模型,鏈表的
    發(fā)表于 04-29 18:25 ?0次下載
    什么是<b class='flag-5'>棧</b>?<b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b><b class='flag-5'>中</b><b class='flag-5'>棧</b>如何實現(xiàn)

    數(shù)據(jù)結(jié)構(gòu)堆棧出序列問題解析

    這是工作遇到的小問題。 數(shù)據(jù)結(jié)構(gòu)中有一種數(shù)據(jù)類型堆棧,該結(jié)構(gòu)數(shù)據(jù)項有如下特點: 除了最前面
    的頭像 發(fā)表于 10-19 15:46 ?3662次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b><b class='flag-5'>中</b>堆棧出<b class='flag-5'>棧</b>序列問題解析

    如何解決數(shù)據(jù)結(jié)構(gòu)設(shè)計最大頻率問題?

    讀完本文,可以去力扣解決如下題目: 895.最大頻率(Hard) ? 我個人很喜歡設(shè)計特殊數(shù)據(jù)結(jié)構(gòu)的問題,畢竟在工作中會經(jīng)常用到基本數(shù)據(jù)結(jié)構(gòu),而設(shè)計類的問題就非常考驗對基本數(shù)據(jù)結(jié)構(gòu)
    的頭像 發(fā)表于 03-02 11:02 ?1609次閱讀

    SystemVerilog可以嵌套的數(shù)據(jù)結(jié)構(gòu)

    SystemVerilog除了數(shù)組、隊列和關(guān)聯(lián)數(shù)組等數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)還可以嵌套。
    的頭像 發(fā)表于 11-03 09:59 ?1964次閱讀

    數(shù)據(jù)結(jié)構(gòu)解決滑動窗口問題

    前文用 [單調(diào)解決三道算法問題]介紹了單調(diào)這種特殊數(shù)據(jù)結(jié)構(gòu),本文寫一個類似的數(shù)據(jù)結(jié)構(gòu)「單調(diào)隊列」。 也許這種數(shù)據(jù)結(jié)構(gòu)的名字你沒聽過,其
    的頭像 發(fā)表于 04-19 10:50 ?922次閱讀
    <b class='flag-5'>數(shù)據(jù)結(jié)構(gòu)</b>解決滑動窗口問題

    Linux的進程、線程、內(nèi)核以及中斷

    (push) 和 彈出 (pop) 操作。根據(jù)的特點,很容易的想到可以利用數(shù)組,來實現(xiàn)這種數(shù)據(jù)結(jié)構(gòu)。但是本文要討論的并不是軟件層面的,而是硬件層面的
    的頭像 發(fā)表于 05-14 09:30 ?936次閱讀
    Linux<b class='flag-5'>中</b>的進程<b class='flag-5'>棧</b>、線程<b class='flag-5'>棧</b>、內(nèi)核<b class='flag-5'>棧</b>以及中斷<b class='flag-5'>棧</b>
    主站蜘蛛池模板: 磐安县| 天等县| 富平县| 平果县| 秦皇岛市| 贡嘎县| 勃利县| 永顺县| 中山市| 通渭县| 萨嘎县| 乌鲁木齐市| 孟连| 锡林浩特市| 韶关市| 河南省| 石阡县| 共和县| 温宿县| 湘西| 台中县| 迁西县| 高平市| 灯塔市| 延吉市| 安远县| 瑞昌市| 泗阳县| 晋中市| 雷山县| 宁明县| 开原市| 遵义县| 淮阳县| 新干县| 交口县| 阿拉尔市| 榆林市| 信宜市| 嘉禾县| 繁昌县|