国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

湘潭做網(wǎng)站問下磐石網(wǎng)絡(luò)nba最新交易信息

湘潭做網(wǎng)站問下磐石網(wǎng)絡(luò),nba最新交易信息,網(wǎng)站制作先學什么,桂林網(wǎng)站搭建P. S.:以下代碼均在VS2019環(huán)境下測試,不代表所有編譯器均可通過。 P. S.:測試代碼均未展示頭文件stdio.h的聲明,使用時請自行添加。 目錄 1、題目展示2、題目分析3、完整代碼演示4、結(jié)語 1、題目展示 前面我們了解過如何實現(xiàn)隊列…
P. S.:以下代碼均在VS2019環(huán)境下測試,不代表所有編譯器均可通過。
P. S.:測試代碼均未展示頭文件stdio.h的聲明,使用時請自行添加。

??

目錄

  • 1、題目展示
  • 2、題目分析
  • 3、完整代碼演示
  • 4、結(jié)語

1、題目展示

在這里插入圖片描述


??前面我們了解過如何實現(xiàn)隊列的代碼,如果有遺忘或不熟悉可以回看:鏈接: 隊列的實現(xiàn)(使用鏈表)


??下面我們直接進入正文。



2、題目分析


??在我們的知識儲備當中,我們知道,隊列是一種先進先出的數(shù)據(jù)結(jié)構(gòu),而棧與其相反,是一種后進先出的數(shù)據(jù)結(jié)構(gòu),故我們在用隊列實現(xiàn)棧的時候,可以使用兩個隊列來進行操作,從而令其達到棧的功能。

在這里插入圖片描述

??對于此我們該如何進行理解,當我們需要向隊列中插入數(shù)據(jù)時十分方便,我們可以任選其中一個進行插入,以q1為例,進行四次數(shù)據(jù)插入,分別為1,2,3,4。
在這里插入圖片描述
??而出數(shù)據(jù)時,因為隊列時先進先出,而我們要實現(xiàn)的功能時將最后一個插入的數(shù)據(jù)4刪除或輸出,故此時我們可以將1,2,3以隊列出數(shù)據(jù)的形式輸出到q2當中,并將q1當中的1,2,3刪除,此時q1中只剩下了數(shù)據(jù)4,此時便可以將數(shù)據(jù)輸出或直接刪除了。
在這里插入圖片描述
??當我們需要再次輸入輸出數(shù)據(jù)的時候便可以仿照上述模式進行操作,只不過輸入時的隊列選擇不再是q1,而是有數(shù)據(jù)的那一個隊列,當需要輸出或刪除數(shù)據(jù)時直接將有數(shù)據(jù)的隊列中不需要操作的數(shù)據(jù)導入到?jīng)]有數(shù)據(jù)的隊列當中。這便是插入數(shù)據(jù)和刪除輸出數(shù)據(jù)。


??而題目中我們還需要實現(xiàn)的功能有判斷棧是否為空。這一功能便十分簡單,之間判斷一下兩個隊列是否都為空即可。代碼如下:

bool myStackEmpty(MyStack* obj) 
{return QueueEmpty(&(obj->q1)) && QueueEmpty(&(obj->q2));
}




3、完整代碼演示


??我們在完成這一道題目時,因為是oj題目,所以在需要完成的功能函數(shù)前需要自行書寫隊列的相關(guān)內(nèi)容代碼,故不在此展示,有需要者可在標題1中自行尋找link鏈接。
typedef int QDataType;typedef struct QueueNode
{struct QueueNode* next;QDataType val;
}QNode, * pQNode;typedef struct Queue
{pQNode phead;pQNode ptail;int size;
}Queue, * pQueue;//隊列初始化
void QueueInit(pQueue pq)
{assert(pq);pq->phead = NULL;pq->ptail = NULL;pq->size = 0;
}//隊列銷毀
void QueueDestroy(pQueue pq)
{assert(pq);pQNode cur = pq->phead;while (cur){pQNode next = cur->next;free(cur);cur = next;}pq->phead = pq->ptail = NULL;pq->size = 0;
}void QueuePush(pQueue pq, QDataType x)
{assert(pq);pQNode tmp = (pQNode)malloc(sizeof(QNode));if (tmp == NULL){perror("QueuePush:malloc");return;}tmp->next = NULL;tmp->val = x;if (pq->ptail == NULL){pq->phead = pq->ptail = tmp;}else{pq->ptail->next = tmp;pq->ptail = tmp;}pq->size++;
}void QueuePop(pQueue pq)
{assert(pq);assert(pq->size != 0);if (pq->phead == pq->ptail){free(pq->phead);pq->phead = pq->ptail = NULL;}else{pQNode tmp = pq->phead->next;free(pq->phead);pq->phead = tmp;}pq->size--;
}bool QueueEmpty(pQueue pq)
{assert(pq);return pq->size == 0;
}QDataType QueueBack(pQueue pq)
{assert(pq);assert(pq->size != 0);return pq->ptail->val;
}//取隊列頭數(shù)據(jù)
QDataType QueueFront(pQueue pq)
{assert(pq);assert(pq->size != 0);return pq->phead->val;
}//隊列數(shù)據(jù)個數(shù)
int QueueSize(pQueue pq)
{assert(pq);return pq->size;
}typedef struct 
{Queue q1;Queue q2;
} MyStack;MyStack* myStackCreate() 
{MyStack* obj = (MyStack*)malloc(sizeof(MyStack));QueueInit(&(obj->q1));QueueInit(&(obj->q2));return obj;
}void myStackPush(MyStack* obj, int x) 
{if(!QueueEmpty(&(obj->q1))){QueuePush(&(obj->q1),x);}    else{QueuePush(&(obj->q2),x);}
}int myStackPop(MyStack* obj) 
{Queue* empty = &(obj->q1);Queue* nonempty = &(obj->q2);if(QueueEmpty(&(obj->q2))){empty = &(obj->q2);nonempty = &(obj->q1);}while(QueueSize(nonempty) > 1){QueuePush(empty,QueueFront(nonempty));QueuePop(nonempty);}int tmp = QueueFront(nonempty);QueuePop(nonempty);return tmp;
}int myStackTop(MyStack* obj) 
{if(!QueueEmpty(&(obj->q1)))return QueueBack(&(obj->q1));elsereturn QueueBack(&(obj->q2));
}bool myStackEmpty(MyStack* obj) 
{return QueueEmpty(&(obj->q1)) && QueueEmpty(&(obj->q2));
}void myStackFree(MyStack* obj) 
{QueueDestroy(&(obj->q1));QueueDestroy(&(obj->q2));free(obj);    
}




4、結(jié)語


??十分感謝您觀看我的原創(chuàng)文章。
??本文主要用于個人學習和知識分享,學習路漫漫,如有錯誤,感謝指正。
??如需引用,注明地址。
;

http://m.aloenet.com.cn/news/45686.html

相關(guān)文章:

  • 有什么網(wǎng)站可以做運動阿里指數(shù)官網(wǎng)最新版本
  • 提供邯鄲手機網(wǎng)站建設(shè)蘇州關(guān)鍵詞優(yōu)化seo
  • wordpress照片ppt網(wǎng)絡(luò)優(yōu)化師是什么工作
  • php做企業(yè)網(wǎng)站需要多久技術(shù)培訓
  • 怎樣申請個人網(wǎng)站便民信息微信平臺推廣
  • 小游戲網(wǎng)站網(wǎng)址做網(wǎng)絡(luò)銷售如何找客戶
  • 在北京網(wǎng)站建設(shè)的崗位湖北網(wǎng)站建設(shè)制作
  • 門戶導航網(wǎng)頁模板seo網(wǎng)絡(luò)營銷是什么意思
  • html企業(yè)網(wǎng)站實例鄭州網(wǎng)絡(luò)seo公司
  • 做我女朋友好不好手機網(wǎng)站chatgpt網(wǎng)頁
  • 做網(wǎng)站雙12促銷方案百度官方免費下載安裝
  • dede網(wǎng)站百度統(tǒng)計怎么做中國免費網(wǎng)站服務(wù)器下載
  • 行業(yè)網(wǎng)站方案營銷型企業(yè)網(wǎng)站
  • 男生為女生做網(wǎng)站新媒體運營
  • 日本做曖小視頻在線觀看網(wǎng)站百度app下載安裝 官方
  • 遵義市做網(wǎng)站的電話58和百度哪個推廣效果好
  • dw做網(wǎng)站背景圖片設(shè)置關(guān)鍵詞批量調(diào)詞 軟件
  • 做微信公眾號的網(wǎng)站有哪些內(nèi)容外貿(mào)平臺排名
  • 重慶景點排名seo優(yōu)化標題 關(guān)鍵詞
  • 常州網(wǎng)站建設(shè)案例長沙優(yōu)化官網(wǎng)服務(wù)
  • 做外貿(mào)網(wǎng)站需要什么條件app拉新推廣怎么做
  • 黃村專業(yè)網(wǎng)站建設(shè)公司百度廣告代理商
  • 天津津坤科技發(fā)展有限公司鄭州seo優(yōu)化外包顧問阿亮
  • 西安手機網(wǎng)站建設(shè)app投放渠道有哪些
  • wordpress 大內(nèi)存網(wǎng)站建設(shè)優(yōu)化推廣系統(tǒng)
  • 政府網(wǎng)站建設(shè)問題nba中國官方網(wǎng)站
  • 自己制作頭像的網(wǎng)站 設(shè)計 動漫蘇州seo關(guān)鍵詞優(yōu)化方法
  • 網(wǎng)絡(luò)葉子 網(wǎng)站推廣騰訊企業(yè)qq官網(wǎng)
  • asp動態(tài)網(wǎng)站開發(fā)課后答案寧波seo推薦推廣渠道
  • wordpress本地網(wǎng)站百度網(wǎng)盤app