實驗目的
本次實驗的目的在於使學生深入了解棧和佇列的特徵,掌握在實際問題背景下的靈活運用。
實驗要求
正確設計和實現本程式,記錄輸出結果。
實驗內容
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 順序棧 棧的順序儲存結...