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

當前位置: 首頁 > news >正文

成都網(wǎng)站設(shè)計費用濟寧seo優(yōu)化公司

成都網(wǎng)站設(shè)計費用,濟寧seo優(yōu)化公司,購物網(wǎng)站建設(shè)模板圖片,什么是企業(yè)網(wǎng)目錄 1.實現(xiàn)方法 過程詳解 1.執(zhí)行push 1->push 2->push 3->push 4 2.執(zhí)行第一個pop 3.執(zhí)行第二個pop 4.執(zhí)行push 5->push 6 ?編輯 5.執(zhí)行pop->pop->pop 代碼實現(xiàn) 隊列創(chuàng)建函數(shù)myQueueCreate 入隊函數(shù)myQueuePush 出隊函數(shù)myQueuePop 返回隊列開頭…

目錄

1.實現(xiàn)方法

過程詳解

1.執(zhí)行push 1->push 2->push 3->push 4

2.執(zhí)行第一個pop

?3.執(zhí)行第二個pop

4.執(zhí)行push 5->push 6

?編輯

?5.執(zhí)行pop->pop->pop

代碼實現(xiàn)

隊列創(chuàng)建函數(shù)myQueueCreate

入隊函數(shù)myQueuePush

出隊函數(shù)myQueuePop

返回隊列開頭元素的函數(shù)myQueuePeek

判斷隊列是否為空的函數(shù)myQueueEmpty

隊列銷毀函數(shù)myQueueFree

2.提交結(jié)果


解決L19.【LeetCode筆記】用棧實現(xiàn)隊列(方法1)遺留未講的方法2

1.實現(xiàn)方法

過程詳解

實現(xiàn)方法和方法1有較大的不同,一個棧用于入(push)數(shù)據(jù),另一個棧(pop)用于出數(shù)據(jù)

對于"push 1->push 2->push 3->push 4->pop->pop->push 5->push 6->->pop->pop->pop"過程畫圖分析

初始化時兩個棧都為空,隨便選一個壓入數(shù)據(jù)

1.執(zhí)行push 1->push 2->push 3->push 4

2.執(zhí)行第一個pop

按隊列的性質(zhì),需要pop 1,則需要將2,3,4拿出放到另一個棧中

?3.執(zhí)行第二個pop

按隊列的性質(zhì),需要pop 2,此時直接對右側(cè)棧pop

4.執(zhí)行push 5->push 6

此時不能將5和6壓入第二個棧,會改變隊列的順序,因此需要壓入左側(cè)的棧

?5.執(zhí)行pop->pop->pop

前兩個pop將3和4出隊

最后一次pop需要將5和6壓入右側(cè)的棧才能以正確的順序出隊

通過分析,可以得出方法2的核心在:一個棧用于入數(shù)據(jù),另一個棧用于出數(shù)據(jù)

代碼實現(xiàn)

由過程詳解可知,可以專門定義一個棧用于入數(shù)據(jù),另一個棧用于出數(shù)據(jù)

typedef struct 
{ST pushst;ST popst;
} MyQueue;

隊列創(chuàng)建函數(shù)myQueueCreate

MyQueue* myQueueCreate()
{MyQueue* obj=(MyQueue*)malloc(sizeof(MyQueue));if (obj==NULL){perror("malloc");return NULL;}STInit(&obj->pushst);STInit(&obj->popst);return obj;
}

入隊函數(shù)myQueuePush

void myQueuePush(MyQueue* obj, int x) 
{STPush(&obj->pushst,x);
}

出隊函數(shù)myQueuePop

這里要分類討論,由"過程詳解"可知,要判斷棧popst是否為空,如果為空,需要將pushst的數(shù)據(jù)(前提是有數(shù)據(jù),因此還要再做一次判斷,即嵌套判斷)全部拿過來,記錄棧頂元素后再pop

int myQueuePop(MyQueue* obj) 
{if (STEmpty(&obj->popst)){while(!STEmpty(&obj->pushst)){STPush(&obj->popst,STTop(&obj->pushst));STPop(&obj->pushst);}}int front=STTop(&obj->popst);STPop(&obj->popst);return front;
}

返回隊列開頭元素的函數(shù)myQueuePeek

和myQueuePop類似,返回popst的棧頂元素,如果popst為空,則將需要將pushst的數(shù)據(jù)拿過來

int myQueuePeek(MyQueue* obj) 
{if (STEmpty(&obj->popst)){while(!STEmpty(&obj->pushst)){STPush(&obj->popst,STTop(&obj->pushst));STPop(&obj->pushst);}}return =STTop(&obj->popst);
}

這里myQueuePop的第二種寫法,讓代碼更簡潔

int myQueuePop(MyQueue* obj)
{int front=myQueuePeek(obj);STPop(&obj->popst);return front;
}

注意:使用myQueuePeek前要聲明否則報錯!!!

判斷隊列是否為空的函數(shù)myQueueEmpty

當兩個棧都為空時,隊列才為空

bool myQueueEmpty(MyQueue* obj) 
{return STEmpty(&obj->pushst) && STEmpty(&obj->popst);
}

隊列銷毀函數(shù)myQueueFree

malloc是怎么開辟的,那隊列就是怎么銷毀的

結(jié)構(gòu)圖

void myQueueFree(MyQueue* obj) 
{STDestory(&obj->pushst);STDestory(&obj->popst);free(obj);
}

2.提交結(jié)果

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

相關(guān)文章:

  • wordpress圖片備用地址遼寧好的百度seo公司
  • 衡水企業(yè)做網(wǎng)站費用安卓排名優(yōu)化
  • php做自己的網(wǎng)站成功的營銷案例及分析
  • 怎么給網(wǎng)站動態(tài)做偽靜態(tài)優(yōu)化公司治理結(jié)構(gòu)
  • 做爰全過程教育網(wǎng)站百度競價排名官網(wǎng)
  • 手機和電腦網(wǎng)站分開做引擎優(yōu)化搜索
  • 家庭寬帶做網(wǎng)站穩(wěn)定鄭州網(wǎng)站制作公司
  • b2b推廣平臺濟南做seo排名
  • 2 網(wǎng)站內(nèi)部鏈接優(yōu)化廣州seo技術(shù)優(yōu)化網(wǎng)站seo
  • 詩歌網(wǎng)站開發(fā)意義百度網(wǎng)站優(yōu)化培訓
  • 眼鏡網(wǎng)站怎么做谷歌海外廣告投放推廣
  • 自己做網(wǎng)站好不好小紅書推廣方式有哪些
  • 為企業(yè)做一個網(wǎng)站多少錢旅游推廣賺傭金哪個平臺好
  • 常州手機網(wǎng)站建設(shè)新手怎么做網(wǎng)絡(luò)銷售
  • 那些語言可以做動態(tài)網(wǎng)站qq群排名優(yōu)化軟件購買
  • 重慶銅梁網(wǎng)站建設(shè)價格新手做seo怎么做
  • 做家鄉(xiāng)網(wǎng)站源代碼網(wǎng)站收錄查詢網(wǎng)
  • 東平建設(shè)局網(wǎng)站網(wǎng)址提交百度
  • 自己建網(wǎng)站做外貿(mào)網(wǎng)店代運營靠譜嗎
  • 做威客有什么靠譜網(wǎng)站怎樣推廣自己的產(chǎn)品
  • 男男做的視頻網(wǎng)站請簡述網(wǎng)絡(luò)營銷的特點
  • 廣州網(wǎng)站建設(shè)騰虎seo推廣培訓課程
  • 山東網(wǎng)站域名備案時間廣州百度首頁優(yōu)化
  • 網(wǎng)站建設(shè)價格標準報價手機seo快速排名
  • 如何編輯網(wǎng)站內(nèi)容國內(nèi)新聞最新消息10條
  • 個人主頁怎么找安徽搜索引擎優(yōu)化seo
  • 制作網(wǎng)站需要什么關(guān)鍵詞挖掘查詢工具愛站網(wǎng)
  • wordpress多站點文章調(diào)用長沙seo服務(wù)
  • 做網(wǎng)站如何上傳百度平臺商家
  • wordpress tracseo人才網(wǎng)