實驗二 棧和佇列的應用

2021-09-22 21:02:05 字數 1970 閱讀 8120

實驗目的

本次實驗的目的在於使學生深入了解棧和佇列的特徵,掌握在實際問題背景下的靈活運用。

實驗要求

正確設計和實現本程式,記錄輸出結果。

實驗內容

1.佇列的各種基本操作實現。

2.十進位制數向n進製資料的轉換。(棧的應用)

附:**

#include 

#include

#include

#define overflow 0

#define ok 1

#define error 0

//順序棧的定義

#define stack_init_size 100//儲存空間初始分配量

#define stackincrement 20

//儲存空間分配增量

typedef

int selemtype;

//selemtype可以是任何相應的資料型別如int,float或char

typedef

structsqstack;

//-------------------------

//初始化順序棧

int initstack(sqstack *s)

//------------------------

//插入元素e為新的棧頂元素

void push(sqstack *s,selemtype e)

*(s->top)++ = e;

//printf("****%d ",e);

}//---------------------

int pop(sqstack *s)

//--------------

void printstack(sqstack *s)

int main()

printf("進棧元素依次如下:\n");

printstack(s);

printf("\n");

//欲出棧元素個數,除錯階段用指定資料,除錯完後賦值

n=2;

//printf("出棧元素數量n\n");

//scanf("%d",&n);

printf("\n出棧元素值依次為:\n");

for(i=1;i<=n;i++)

printf("\n");

printf("棧內元素為 : \n");

printstack(s);

}

二進位制轉換為十進位制**(棧的實現):

請用c:

#include 

#include

#include

#include

#define stack_init_size 20

#define stackincrement 10

typedef char elemtype ;

typedef structsqstack;

initstack(sqstack *s)

push(sqstack *s,elemtype e)

*(s->top)=e;

///放入資料

s->top++;

///top指向下個位址

}int stacklen(sqstack s)

pop(sqstack *s,elemtype *e)

destroystack(sqstack *s)

int main()

getchar();

///得到棧中的元素個數,即二進位制數的長度

len = stacklen(s);

for(i=0;i48)*pow(2,i);

///轉換為十進位制

}printf("decimal is %d\n",sum);

destroystack(&s);

///釋放棧空間

getchar();

}

實驗二 棧和佇列的實現和應用

採用順序棧完成進製轉換 1 定義順序棧的儲存結構 2 實現順序棧的初始化 判斷是否為空 進棧 出棧等基本操作 3 呼叫順序棧的基本操作實現進製轉換。採用迴圈佇列或鏈佇列實現病人看病的模擬程式 1 定義佇列的儲存結構 2 實現佇列的初始化 判斷是否為空 入隊 出隊等基本操作 3 呼叫佇列的基本操作實現...

實驗二棧和佇列

一 1.順序棧 源 include const int stacksize 10 template class seqstack seqstack void push void pop datatype gettop int empty private datatype data stacksize...

實驗二 棧和佇列

這個作業屬於哪個課程 這個作業要求在 homework 11296 這個作業的目標 棧和佇列 學號2018204153 一 實驗目的 1 掌握棧的結構特性及其入棧,出棧操作 2 掌握佇列的結構特性及其入隊 出隊的操作,掌握迴圈佇列的特點及其操作。二 實驗預習 說明以下概念 1 順序棧 棧的順序儲存結...