中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

廣州移動(dòng) 網(wǎng)站建設(shè)今日特大新聞

廣州移動(dòng) 網(wǎng)站建設(shè),今日特大新聞,seo 新舊網(wǎng)站 兩個(gè)域名,wordpress文章編輯舊版目錄 1->棧的概念和結(jié)構(gòu) 1.1棧的概念 1.2棧的結(jié)構(gòu) 2->棧的實(shí)現(xiàn) 2.1定義關(guān)于棧的結(jié)構(gòu)體和各種函數(shù) 2.2棧的初始化 STInit 函數(shù) 2.3棧的銷(xiāo)毀 STDestroy 函數(shù) 2.4棧的插入操作 STPush 函數(shù) 2.5棧的判斷是否為空操作 STEmpty 函數(shù) 2.6棧的刪除操作 STPop 函數(shù) 2.7…

目錄

1->棧的概念和結(jié)構(gòu)

1.1棧的概念

?1.2棧的結(jié)構(gòu)

?2->棧的實(shí)現(xiàn)

2.1定義關(guān)于棧的結(jié)構(gòu)體和各種函數(shù)

2.2棧的初始化?STInit 函數(shù)

2.3棧的銷(xiāo)毀?STDestroy 函數(shù)

2.4棧的插入操作?STPush 函數(shù)?

2.5棧的判斷是否為空操作?STEmpty 函數(shù)?

2.6棧的刪除操作?STPop 函數(shù)

2.7棧的取棧頂元素操作?STTop 函數(shù)

2.8求棧的大小即有效元素的個(gè)數(shù)?STSize 函數(shù)

3->測(cè)試下我們自己寫(xiě)的棧

4->您的專(zhuān)屬鼓勵(lì)師


1->棧的概念和結(jié)構(gòu)

1.1棧的概念

棧:一種特殊的線性表,其只允許在固定的一端進(jìn)行插入和刪除元素操作。進(jìn)行數(shù)據(jù)插入和刪除操作的一端稱(chēng)為棧頂,另一端稱(chēng)為棧底。棧中的數(shù)據(jù)元素遵守后進(jìn)先出LIFO(Last In First Out)的原則。

壓棧:棧的插入操作叫做進(jìn)棧/壓棧/入棧,入數(shù)據(jù)在棧頂。

出棧:棧的刪除操作叫做出棧。出數(shù)據(jù)也在棧頂

?1.2棧的結(jié)構(gòu)

?

?2->棧的實(shí)現(xiàn)

棧的實(shí)現(xiàn)一般可以使用數(shù)組或者鏈表實(shí)現(xiàn),相對(duì)而言數(shù)組的結(jié)構(gòu)實(shí)現(xiàn)更優(yōu)一些。因?yàn)閿?shù)組在尾上插入數(shù)據(jù)的代價(jià)比較小.

使用數(shù)組模擬原理:

?使用鏈表模擬原理:

?

// 下面是定長(zhǎng)的靜態(tài)棧的結(jié)構(gòu),實(shí)際中一般不實(shí)用,所以我們主要實(shí)現(xiàn)下面的支持動(dòng)態(tài)增長(zhǎng)的棧
typedef int STDataType;
#define N 10
typedef struct Stack
{STDataType _a[N];int _top; // 棧頂
}Stack;

2.1定義關(guān)于棧的結(jié)構(gòu)體和各種函數(shù)

#pragma once
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>typedef struct Stack
{int* _arr;//開(kāi)辟在堆區(qū)上存儲(chǔ)數(shù)據(jù)的數(shù)組int _top;//棧頂?shù)南乱粋€(gè)位置int _capacity;//棧的容量
}ST;//1.棧初始化
void STInit(ST* pst);
//2.棧的銷(xiāo)毀
void STDestroy(ST* pst);
//3.棧的插入操作
void STPush(ST* pst, int x);
//4.棧的刪除操作
void STPop(ST* pst);
//5.取棧頂元素
int STTop(ST* pst);
//6.判斷棧是否為空,空為true,非空為false
bool STEmpty(ST* pst);
//7.求棧的大小即有效元素的個(gè)數(shù)
int STSize(ST* pst);

2.2棧的初始化?STInit 函數(shù)

//1.棧初始化
void STInit(ST* pst)
{assert(pst);pst->_arr = NULL;pst->_capacity = 0;pst->_top = 0;//指向棧頂元素的下一個(gè)位置,類(lèi)似于//之前寫(xiě)的順序表中的_size,指向未使用位置
}

2.3棧的銷(xiāo)毀?STDestroy 函數(shù)

//2.棧的銷(xiāo)毀
void STDestroy(ST* pst)
{assert(pst);free(pst->_arr);//清理位于堆上的數(shù)組pst->_arr = NULL;pst->_capacity = pst->_top = 0;
}

2.4棧的插入操作?STPush 函數(shù)?

//3.棧的插入操作
void STPush(ST* pst, int x)
{assert(pst);//插入數(shù)據(jù)之前判斷一下容量是否足夠,不夠就擴(kuò)容if (pst->_top == pst->_capacity)//容量滿(mǎn)了,擴(kuò)容{//剛開(kāi)始插入給4個(gè)空間,否則就2倍擴(kuò)容int newcapacity = (pst->_capacity == 0 ? 4 : pst->_capacity * 2);int* newarr = (int*)realloc(pst->_arr, newcapacity * sizeof(int));if (newarr == NULL){perror("realloc failed");return;}pst->_arr = newarr;pst->_capacity = newcapacity;}//有容量了,插入數(shù)據(jù)pst->_arr[pst->_top] = x;pst->_top++;
}

2.5棧的判斷是否為空操作?STEmpty 函數(shù)?

//4.判斷棧是否為空,空為true,非空為false
bool STEmpty(ST* pst)
{assert(pst);return pst->_top == 0;
}

2.6棧的刪除操作?STPop 函數(shù)

//5.棧的刪除操作
void STPop(ST* pst)
{//首先你得有元素才能刪除對(duì)吧assert(pst);assert(!STEmpty(pst));pst->_top--;
}

2.7棧的取棧頂元素操作?STTop 函數(shù)

//6.取棧頂元素
int STTop(ST* pst)
{assert(pst);assert(!STEmpty(pst));return pst->_arr[pst->_top - 1];
}

2.8求棧的大小即有效元素的個(gè)數(shù)?STSize 函數(shù)

//7.求棧的大小即有效元素的個(gè)數(shù)
int STSize(ST* pst)
{assert(pst);return pst->_top;
}

3->測(cè)試下我們自己寫(xiě)的棧

#include "Stack.h"//1.測(cè)試棧插入,刪除,取棧頂元素
void testStack1()
{ST st;STInit(&st);STPush(&st, 1);STPush(&st, 2);STPush(&st, 3);STPush(&st, 4);STPush(&st, 5);while (!STEmpty(&st)){printf("%d : ",STTop(&st));STPop(&st);}STDestroy(&st);}int main()
{testStack1();return 0;
}

運(yùn)行,看控制臺(tái)輸出:歐耶,我們自己寫(xiě)的??梢哉_\(yùn)行

4->您的專(zhuān)屬鼓勵(lì)師

????????有些事情,你永遠(yuǎn)都沒(méi)有辦法做到“頂尖”,因?yàn)橹橇Ω簧?但是所有的事情,你都可以做到“高段”,因?yàn)樗枰氖菚r(shí)間的累積和精力的打磨.不聰明與聰明之間的區(qū)別,是很微妙的.有時(shí)候我們只會(huì)通過(guò)一次兩次的結(jié)果,來(lái)判斷整個(gè)人、整件事,其實(shí)這是不明智的.從小,鄰居和親戚在談?wù)撐业臅r(shí)候,都會(huì)覺(jué)得我很聰明。但是只有我自己知道,我從來(lái)沒(méi)有聰明過(guò),只是看上去比較聰明而已.

????????修行之路確實(shí)枯燥,但是我們把問(wèn)題搞懂以后就發(fā)現(xiàn)他是那樣的美妙!一遍學(xué)不會(huì)沒(méi)關(guān)系吖,多看幾遍,我也是學(xué)了好多遍呢,小伙伴們肯定學(xué)的又快又好!!!最后希望寫(xiě)的內(nèi)容對(duì)小伙伴們有所幫助,我寫(xiě)的如果有哪里不對(duì)的地方請(qǐng)?jiān)谠u(píng)論區(qū)或者私信指出來(lái)哦!讓我們一起進(jìn)步吖,任何疑問(wèn)包括心情不好都可以找我聊聊,我很樂(lè)意當(dāng)你的傾聽(tīng)者吖.???

http://www.risenshineclean.com/news/38142.html

相關(guān)文章:

  • 如何做高校的網(wǎng)站版面設(shè)計(jì)品牌宣傳策略
  • 做網(wǎng)站需要續(xù)費(fèi)嗎深圳seo優(yōu)化外包
  • 德州哪里有做網(wǎng)站推廣的深圳seo優(yōu)化排名優(yōu)化
  • 網(wǎng)站建設(shè)需要精通什么知識(shí)網(wǎng)絡(luò)推廣的優(yōu)勢(shì)有哪些
  • 個(gè)人可以做幾個(gè)網(wǎng)站嗎百度快照是什么意思?
  • 網(wǎng)站開(kāi)發(fā)與網(wǎng)站建設(shè)精準(zhǔn)獲客
  • 網(wǎng)站 建設(shè)網(wǎng)站市場(chǎng)調(diào)研分析
  • 廈門(mén)做網(wǎng)站個(gè)人蘇州做網(wǎng)站的專(zhuān)業(yè)公司
  • 網(wǎng)站建設(shè)需要什么資料智能營(yíng)銷(xiāo)方法
  • 松江新城投資建設(shè)集團(tuán)有限公司網(wǎng)站網(wǎng)絡(luò)營(yíng)銷(xiāo)第三版課本
  • 龍崗做網(wǎng)站的公司源碼之家
  • 網(wǎng)站建設(shè)到運(yùn)營(yíng)需要多少錢(qián)怎樣在百度上做廣告
  • 做品牌網(wǎng)站公司淄博網(wǎng)站營(yíng)銷(xiāo)與推廣
  • 臺(tái)州專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)系統(tǒng)網(wǎng)絡(luò)推廣有哪幾種方法
  • 做網(wǎng)站品牌怎么注冊(cè)自己公司的網(wǎng)址
  • 舟山市城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站seo搜索引擎優(yōu)化是通過(guò)優(yōu)化答案
  • 什么網(wǎng)站可以做自考試題seo教育
  • 品牌網(wǎng)站建設(shè)多少錢(qián)品牌推廣策略分析
  • 網(wǎng)站怎樣才有流量seo是指搜索引擎營(yíng)銷(xiāo)
  • 深圳設(shè)計(jì)裝修公司哪家好百度關(guān)鍵詞優(yōu)化培訓(xùn)
  • 合肥最好的網(wǎng)站建設(shè)公司化妝培訓(xùn)
  • 上海松江做網(wǎng)站多少錢(qián)怎么做百度推廣平臺(tái)
  • 網(wǎng)站開(kāi)發(fā)流程百度文庫(kù)北京關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 天津網(wǎng)站建設(shè)價(jià)格培訓(xùn)課程安排
  • 小縣城做網(wǎng)站百度推廣平臺(tái)收費(fèi)標(biāo)準(zhǔn)
  • 外貿(mào)cms 網(wǎng)站app推廣聯(lián)盟平臺(tái)
  • 廣州手機(jī)軟件開(kāi)發(fā)制作初學(xué)seo網(wǎng)站推廣需要怎么做
  • 企業(yè)專(zhuān)屬網(wǎng)頁(yè)免費(fèi)刷seo
  • 國(guó)內(nèi)h5 css3網(wǎng)站廣州seo排名收費(fèi)
  • 鹽城做網(wǎng)站哪家好廣州網(wǎng)站建設(shè)方案維護(hù)