數(shù)據(jù)結(jié)構(gòu)(三)——棧和隊(duì)列-創(chuàng)新互聯(lián)

棧和隊(duì)列

創(chuàng)新互聯(lián)公司"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機(jī)版的企業(yè)網(wǎng)站。實(shí)現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動(dòng)網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)公司具備承接各種類型的成都網(wǎng)站制作、成都做網(wǎng)站項(xiàng)目的能力。經(jīng)過十載的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。目錄
  • 棧和隊(duì)列
    • 定義以及特點(diǎn)
    • 棧頂指針與棧底指針
    • 操作
      • 順序棧的定義
      • 初始化
      • 入棧
      • 出棧
      • 取棧頂元素
      • 銷毀
    • 鏈棧
      • 定義
      • 初始化
      • ???/li>
      • 棧長
      • 取棧頂元素
      • 出棧
      • 入棧
  • 隊(duì)列
    • 定義以及隊(duì)列
  • 進(jìn)制轉(zhuǎn)換

棧 定義以及特點(diǎn)

限定僅在表尾進(jìn)行插入或刪除的,后進(jìn)先出的線性表
在這里插入圖片描述

棧頂指針與棧底指針

base:棧底指針,始終指向棧底位置。若base=NULL,表明棧結(jié)構(gòu)不存在。
top:棧頂指針,初值指向棧底。插入新元素時(shí)top+1,刪除元素時(shí)top-1.。
空棧時(shí),top與base的值相等,均指向棧底;非空時(shí)top始終指向棧頂元素的上一個(gè)位置。
在這里插入圖片描述

操作 順序棧的定義
#define MAXSIZE 100;
typedef struct
{SElemType *base;
  SElemType *top;
  int stacksize;                          //棧可用的大容量
}SqStack;
初始化
Status InitStack(SqStack &S)
{S.base=new SElemType[MAXSIZE];      //為順序棧分配一個(gè)大容量為MAXSIZE的數(shù)組空間
   if(!S=base) exit(OVERFLOW);         //存儲分配失敗
   S.top = S.base;
   S.stacksize=MAXSIZE;
   return OK;
}
入棧
Status Push(SqStack &S,SElemType e)
{if(S.top-S.base==S.stacksize) return ERROR;
  *S.top++=e;     //*S.top=e;S.top++;
  return OK;
}
出棧
Status Pop(SqStack &S,SElemType e)
{if(S.top==S.base) return ERROR;
  e=*--S.top;
  return OK;
}
取棧頂元素
SElemType GetTop(SqStack S)
{if(S.top==S.base)
   return *(S.top-1);
}
銷毀
void DestroyStack(SqStack &S)
{delete []S.base;
  S.stacksize=0;
  S.base=S.top=NULL;
 }
鏈棧

:鏈棧中一般不設(shè)置頭結(jié)點(diǎn)

定義
typedef struct Node
{SElemType data;
 struct Node *next;
}Node,*LinkStack;
初始化
Status InitStack(LinkStack &S)    //S:棧頂指針
{S==NULL;
   return OK;
}
???pre>bool StackEmpty(LinkStack S) {return (S==NULL);棧長
int StackLength(LinkStack S)
{for(i=0,p=S;p;i++,p=p->next);
   return i;
}  
取棧頂元素
Status GetTop(LinkStack S,SElemType &e)
{if(S==NULL) return ERROR;
   e=S->data;
   return OK;
} 
出棧
Status Pop(LinkStack &S,SElemType e)
{if(S==NULL) return ERROR;
  e=S->data;
  p=S;
  S=S->next;
  delete p;
  return OK;
}
入棧
Status Push(LinkStack &S,SElemType e)
{p=new StackNode;
  p->data=e;
  p->next=S;
  S=p;
  return OK;
}
隊(duì)列 定義以及隊(duì)列

僅允許在表的一端進(jìn)行插入(隊(duì)尾),在另一端進(jìn)行刪除的(隊(duì)頭),先進(jìn)先出的線性表
在這里插入圖片描述

進(jìn)制轉(zhuǎn)換
void conversion(int N,int r){InitStack(S);
while(N)
{Push(S,N%r);
   N=N/r;
}
while(!StackEmpty(S)){Pop(S,e);
   if(e<10)printf("%d",e);
   else printf("%c",'A'+e-10);
} 

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標(biāo)題:數(shù)據(jù)結(jié)構(gòu)(三)——棧和隊(duì)列-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://muchs.cn/article48/djhiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、企業(yè)建站、網(wǎng)站設(shè)計(jì)公司、靜態(tài)網(wǎng)站動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司