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

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

甘肅政府網(wǎng)站建設(shè)seo如何優(yōu)化關(guān)鍵詞

甘肅政府網(wǎng)站建設(shè),seo如何優(yōu)化關(guān)鍵詞,wordpress 分享到微信,wordpress如何爬蟲文章目錄 目錄 前言 一、棧 1.棧的概念及結(jié)構(gòu) 2.棧的實(shí)現(xiàn) 入棧 出棧 獲取棧頂元素 獲取棧中有效元素個(gè)數(shù) 檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0 銷毀棧 二、隊(duì)列 1.隊(duì)列的概念及結(jié)構(gòu) 2.隊(duì)列的實(shí)現(xiàn) 初始化隊(duì)列 隊(duì)尾入隊(duì)列 隊(duì)頭出隊(duì)列 獲…

文章目錄

目錄

前言

一、棧

1.棧的概念及結(jié)構(gòu)

2.棧的實(shí)現(xiàn)

入棧

?出棧

?獲取棧頂元素

?獲取棧中有效元素個(gè)數(shù)

?檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0?

?銷毀棧

二、隊(duì)列

1.隊(duì)列的概念及結(jié)構(gòu)

2.隊(duì)列的實(shí)現(xiàn)

初始化隊(duì)列

?隊(duì)尾入隊(duì)列

?隊(duì)頭出隊(duì)列

??獲取隊(duì)列隊(duì)頭元素

?獲取隊(duì)列隊(duì)尾元素

?獲取隊(duì)列中有效元素個(gè)數(shù)

?檢測隊(duì)列是否為空,如果為空返回非零結(jié)果,如果非空返回0?

銷毀隊(duì)列?

?最后


前言

本篇文章內(nèi)容講述了棧和隊(duì)列的概念結(jié)構(gòu)、分類與函數(shù)聲明部分,以及對(duì)于各個(gè)函數(shù)的實(shí)現(xiàn)。

以下內(nèi)容僅供參考,歡迎各位大佬批評(píng)指正呦~


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

?

一、棧

1.棧的概念及結(jié)構(gòu)

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

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à)比較小。

// 下面是定長的靜態(tài)棧的結(jié)構(gòu),實(shí)際中一般不實(shí)用,所以我們主要實(shí)現(xiàn)下面的支持動(dòng)態(tài)增長的棧
typedef int STDataType;
#define N 10
typedef struct Stack
{STDataType a[N];int _top; // 棧頂
}ST;// 支持動(dòng)態(tài)增長的棧
typedef int STDataType;
typedef struct Stack
{STDataType* a;int top; // 棧頂int capacity; // 容量
}ST;// 初始化棧
void StackInit(ST* ps); // 入棧
void StackPush(ST* ps, STDataType x); // 出棧
void StackPop(ST* ps); // 獲取棧頂元素
STDataType StackTop(ST* ps); // 獲取棧中有效元素個(gè)數(shù)
int StackSize(ST* ps); // 檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0 
int StackEmpty(ST* ps); // 銷毀棧
void StackDestroy(ST* ps); 

初始化棧

void StackInit(ST* ps)
{assert(ps);ps->a = (STDatatype)malloc(sizeof(STDatatype) * 4);if (ps->a == NULL){perror("malloc fail");exit(-1);}ps->top = 0;ps->capacity = 4;
}

入棧

void StackPush(ST* ps, STDatatype x)
{assert(ps);if (ps->top == ps->capacity){STDatatype* tmp = (STDatatype*)realloc(ps->a,ps->capacity*2*sizeof(STDatatype));if (tmp == NULL){perror("realloc fail");exit(-1);}ps->a = tmp;ps->capacity *= 2;}ps->a[ps->top] = x;ps->top++;}

?出棧

void StackPop(ST* ps)
{assert(ps);assert(!StackEmpty(ps));ps->top--;
}

?獲取棧頂元素

STDatatype StackTop(ST* ps)
{assert(ps);assert(!StackEmpty(ps));return ps->a[ps->top - 1];
}

?獲取棧中有效元素個(gè)數(shù)

int StackSize(ST* ps)
{assert(ps);return ps->top;
}

?檢測棧是否為空,如果為空返回非零結(jié)果,如果不為空返回0?

bool StackEmpty(ST* ps) 
{assert(ps);return ps->top == 0;
}

?銷毀棧

void StackDestory(ST* ps)
{assert(ps);free(ps->a);ps->a = NULL;ps->top = ps->capacity = 0;
}

二、隊(duì)列

1.隊(duì)列的概念及結(jié)構(gòu)

隊(duì)列:只允許在一端進(jìn)行插入數(shù)據(jù)操作,在另一端進(jìn)行刪除數(shù)據(jù)操作的特殊線性表,隊(duì)列具有先進(jìn)先出 FIFO(First In First Out) 入隊(duì)列:進(jìn)行插入操作的一端稱為隊(duì)尾 出隊(duì)列:進(jìn)行刪除操作的一端稱為隊(duì)頭

2.隊(duì)列的實(shí)現(xiàn)

隊(duì)列也可以數(shù)組和鏈表的結(jié)構(gòu)實(shí)現(xiàn),使用鏈表的結(jié)構(gòu)實(shí)現(xiàn)更優(yōu)一些,因?yàn)槿绻褂脭?shù)組的結(jié)構(gòu),出隊(duì)列在數(shù) 組頭上出數(shù)據(jù),效率會(huì)比較低。

// 鏈?zhǔn)浇Y(jié)構(gòu):表示隊(duì)列
typedef int QDataType;
typedef struct QueueNode
{QDataType data;struct QueueNode* next;
}QNode;// 隊(duì)列的結(jié)構(gòu)
typedef struct Queue
{ QNode* head;QNode* tail;int size;
}Queue; // 初始化隊(duì)列
void QueueInit(Queue* pq); // 隊(duì)尾入隊(duì)列
void QueuePush(Queue* pq, QDataType data); // 隊(duì)頭出隊(duì)列
void QueuePop(Queue* pq); // 獲取隊(duì)列頭部元素
QDataType QueueFront(Queue* pq); // 獲取隊(duì)列隊(duì)尾元素
QDataType QueueBack(Queue* pq); // 獲取隊(duì)列中有效元素個(gè)數(shù)
int QueueSize(Queue* pq); // 檢測隊(duì)列是否為空,如果為空返回非零結(jié)果,如果非空返回0 
int QueueEmpty(Queue* pq); // 銷毀隊(duì)列
void QueueDestroy(Queue* pq);

初始化隊(duì)列

void QueueInit(Queue* pq)
{assert(pq);pq->head = NULL;pq->tail = NULL;pq->size = 0;
}

?隊(duì)尾入隊(duì)列

void QueuePush(Queue* pq, QDataType x)
{assert(pq);QNode* newnode = (QNode*)malloc(sizeof(QNode));if (newnode == NULL){perror("malloc fail");exit(-1);}newnode->data = x;newnode->next = NULL;if (pq->tail == NULL){pq->head = pq->tail = newnode;}else{pq->tail->next = newnode;pq->tail = newnode;}pq->size++;
}

?隊(duì)頭出隊(duì)列

void QueuePop(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));if (pq->head->next == NULL){free(pq->head);pq->head = pq->tail = NULL;}else{QNode* del = pq->head;pq->head = pq->head->next;free(del);}pq->size--;
}

??獲取隊(duì)列隊(duì)頭元素

QDataType QueueFront(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->head->data;
}

?獲取隊(duì)列隊(duì)尾元素

QDataType QueueBack(Queue* pq)
{assert(pq);assert(!QueueEmpty(pq));return pq->tail->data;
}

?獲取隊(duì)列中有效元素個(gè)數(shù)

int QueueSize(Queue* pq)
{assert(pq);return pq->size;
}

?檢測隊(duì)列是否為空,如果為空返回非零結(jié)果,如果非空返回0?

bool QueueEmpty(Queue* pq)
{assert(pq);return pq->head == NULL && pq->tail == NULL;
}

銷毀隊(duì)列?

void QueueDestroy(Queue* pq)
{assert(pq);QNode* cur = pq->head;while (cur){QNode* del = cur;cur = cur->next;free(del);//del = NULL;}pq->head = pq->tail = NULL;pq->size = 0;
}

?最后

快樂的時(shí)光總是短暫的,以上就是今天要講的內(nèi)容,本文介紹了小趙同志對(duì)算法與數(shù)據(jù)結(jié)構(gòu)(C語言)的棧和隊(duì)列的初步認(rèn)知以及實(shí)現(xiàn)。歡迎家人們批評(píng)指正。小趙同志繼續(xù)更新,不斷學(xué)習(xí)的動(dòng)力是寶子們一鍵三連的支持呀~

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

http://m.risenshineclean.com/news/65224.html

相關(guān)文章:

  • 什么是功能型網(wǎng)站有沒有免費(fèi)的寫文案的軟件
  • 百度外賣網(wǎng)站建設(shè)與維護(hù)方法seo推廣教學(xué)
  • 做古玩生意哪些網(wǎng)站好互聯(lián)網(wǎng)營銷師證書怎么考
  • 宜興建設(shè)局 審圖中心 網(wǎng)站seo快速排名軟件案例
  • 做企業(yè)網(wǎng)站要大陸營業(yè)執(zhí)照百度小說搜索風(fēng)云榜總榜
  • 專業(yè)做營銷網(wǎng)站百度推廣怎么推
  • 展示型網(wǎng)站設(shè)計(jì)方案百度域名收錄
  • 番禺人才網(wǎng)最新招聘信息網(wǎng)濰坊網(wǎng)站建設(shè)優(yōu)化
  • 國外免費(fèi)虛擬主機(jī)惠州seo整站優(yōu)化
  • 重慶市建設(shè)工程信息網(wǎng)質(zhì)量監(jiān)督網(wǎng)站seo策劃方案
  • 品牌建設(shè)完整版淄博seo
  • b2b門戶網(wǎng)站建設(shè)多少錢代寫
  • 1免費(fèi)做網(wǎng)站seo搜索引擎優(yōu)化人才
  • 珊瑚絨毯移動(dòng)網(wǎng)站建設(shè)百度推廣頁面投放
  • 二級(jí)已備案域名免費(fèi)使用寧波搜索引擎優(yōu)化seo
  • 邯鄲做網(wǎng)站公司哪家好北京網(wǎng)站優(yōu)化多少錢
  • 專注高端網(wǎng)站設(shè)計(jì)百度百科官網(wǎng)
  • 怎樣看一個(gè)網(wǎng)站的瀏覽量太原seo網(wǎng)站排名
  • 旅游三級(jí)分銷網(wǎng)站google關(guān)鍵詞優(yōu)化排名
  • 廣州做網(wǎng)站建設(shè)的公司長沙網(wǎng)絡(luò)推廣
  • 青島旅游網(wǎng)站建設(shè)徐州seo排名公司
  • 網(wǎng)站seo計(jì)劃書代發(fā)百度關(guān)鍵詞排名
  • 網(wǎng)站建設(shè)報(bào)價(jià) 福州seo外包品牌
  • 網(wǎng)站輸入字符 顯示出來怎么做問答推廣
  • 做寫字樓用哪個(gè)網(wǎng)站更好比較靠譜的推廣平臺(tái)
  • 廣州網(wǎng)站二級(jí)等保企業(yè)網(wǎng)站營銷實(shí)現(xiàn)方式解讀
  • 英國人做愛無網(wǎng)站百度老舊版本大全
  • 外包兼職做圖的網(wǎng)站百度免費(fèi)推廣怎么操作
  • 廣州網(wǎng)站優(yōu)化哪家快洛陽市網(wǎng)站建設(shè)
  • 做綠色軟件的網(wǎng)站知乎百度關(guān)鍵詞推廣費(fèi)用