一、實驗目的
掌握棧的基本操作:初始化、判空、判滿、入棧、出棧、取棧頂元素等運算。
二、實驗要求包含有標頭檔案和main函式;
1. 格式正確,語句採用縮排格式;
2. 設計子函式實現題目要求的功能;
3. 編譯、連線通過,熟練使用命令鍵;
4. 執行結果正確,輸入輸出有提示,格式美觀。
三、實驗裝置、材料和工具
1. 奔騰2計算機或以上機型
2. turboc2,win-tc
四、實驗內容和步驟
實驗內容:
1. 分析程式。
2. 完成程式編寫和補充
步驟:3. 確定資料的結構;
4. 利用main函式呼叫各子函式;
5. 除錯、分析執行結果。
五、實驗報告要求
1. 根據實驗內容初步設計好程式,並從理論上排除錯誤;
2. 針對程式的健壯性準備好測試資料;
3. 結果分析中如實填寫執行後的結果,記錄除錯過程中產生的重要問題和解決方法。
六、根據實驗過程填寫下面內容
基礎部分
1.構建下列標頭檔案,檔名稱seqstack.h
#define true 1
#define false 0
#define stack_size 500
#define stackelementtype int
typedef struct
seqstack;
void initstack(seqstack *s)
int isempty(seqstack *s) /*判斷棧s為空棧時返回值為真,反之為假*/
int isfull(seqstack *s) /*判斷棧s為滿棧時返回值為真,反之為假*/
int push(seqstack *s,stackelementtype x)
int pop(seqstack *s,stackelementtype *x)
}int gettop(seqstack *s,stackelementtype *x)
2.構建判斷回文序列的程式,完成執行和除錯。回文序列如:序列1&序列2
//包含順序棧標頭檔案
#include"seqstack.h"//包含順序棧標頭檔案
#include "stdio.h"
void main()
while(!isempty(&s))//括號內填入判斷條件
pop(&s,&temp);//s出棧,出棧值存放與temp變數中
i++;//變數i自增
ch=str[i];//賦值str中下乙個元素值給ch變數
if(temp!=ch) //括號內填入判斷條件
break;
}if(!isempty(&s)||str[i+1]!='\0')//括號內填入判斷條件
printf("no!\n");
else
printf("yes!\n");
}3.編寫程式使棧內元素倒置(設定兩個棧,把其中乙個棧的元素順序出棧,並順序放入第二個棧中,則第二個棧中元素已經倒置)!
#include "stdio.h"//包含基本輸入輸出標頭檔案
#include "seqstack.h"//包含順序棧標頭檔案
main()
printf("第二個棧的內容:\n");
while(!isempty(&t))
}提高部分
4.編寫程式用棧實現進製轉換中的資料存放問題,完成進製轉換功能**換成二進位制)。
#include"stdio.h"
#include"seqstack.h"
void main()
while(!isempty(&s))
}5.編寫程式用棧實現求fibonacci數列第n(n>=3)個數的值。
#include"stdio.h"
#include"seqstack.h"
void main ()
temp= 0;
while(!isempty(&s))}
資料結構實驗三順序棧基本操作
課內實驗任務書 年月日實驗三順序棧的基本操作 一 實驗目的 1.了解順序棧的結構特點及有關概念 2.理解順序棧的儲存結構 3.掌握順序棧的基本操作演算法。二 實驗內容 建立順序棧,完成順序棧的基本操作 初始化 入棧 出棧 輸出 銷毀,置棧空 求棧長 判順序棧是否為空 棧滿 取棧頂元素。三 實驗要點及...
資料結構03棧的基本操作
院系專業 姓名 林楨曦學號 106052010235 級班年 月 日 編寫棧的基本操作函式 分別用順序和鏈結兩種方式實現 呼叫進棧函式建立乙個棧,讀取棧頂元素,刪除棧中元素,並且輸出棧中所有元素。順序棧 1 建立空棧 int initstack sqstack s 2 進棧 void push sq...
資料結構棧和佇列基本操作
實驗二棧和佇列 棧的順尋儲存操作 include stdio.h include stdlib.h define stack init size 100 define stackincrement 10 typedef struct sqstack void initstack sqstack s ...