c語言順序棧常規插入刪除操作
#include <stdio.h>
#include <stdlib.h>
typedef int DataTapy;
struct Stack
{
int MAX;//最大容量
int top;//棧頂指標
DataTapy *elem;//存放元素的陣列起始指標
};
typedef struct Stack *SeqStack;//定義順序棧型別
SeqStack SetNullStack_sqe(int m)
{
SeqStack sstack=(SeqStack)malloc(sizeof(struct Stack));
if(sstack!=NULL)
{
sstack->elem=(int*)malloc(sizeof(int)*m);
if(sstack->elem!=NULL)
{
sstack->MAX=m;
sstack->top=-1;
return sstack;
}
else
{
free(sstack);
return NULL;
}
}
else
{
printf("Out of space");
return NULL;
}
}
int IsNullStack_Sqe(SeqStack sstack)
{
if(sstack->top==-1)
return 1;
else
return 0;
}
void Push_Sqe(SeqStack sstack,int x)
{
if(sstack->top>=(sstack->MAX-1))//檢查棧是否滿
{
printf("overflow!\n");
}
else
{
sstack->top++;//若不滿,先修改棧頂變數
sstack->elem[sstack->top]=x;//把元素x放到棧頂變數中的位置
}
}
void Pop_Sqe(SeqStack sstack)
{
if(IsNullStack_Sqe(sstack)==1)//判斷棧是否為空
printf("underflow");
else
sstack->top=sstack->top-1;//棧頂變數-1;
}
DataTapy Top_Seq(SeqStack sstack)//求棧頂元素的值
{
if(IsNullStack_Sqe(sstack)==1)//判斷sstack是否為空棧
{
printf("it is empty stack");
}
else
{
return sstack->elem[sstack->top];
}
}
int main()
{
SeqStack q=SetNullStack_sqe(5);//建立一個空棧
int data;
printf("請輸入進棧的元素,以0結束:");
scanf("%d",&data);
while(data!=0)
{
Push_Sqe(q,data);
scanf("%d",&data);//進棧
}
printf("出棧元素的順序是:");
while(IsNullStack_Sqe(q)!=1)
{
printf("%d ",Top_Seq(q));//取棧頂元素
Pop_Sqe(q);//出棧,此時資料還在陣列裡面
}
}
輸入輸出樣例如下
相關文章
- C++ 順序容器的刪除操作C++
- 資料結構 順序棧(c語言)資料結構C語言
- 連結串列基本操作(建立,插入,查詢,刪除)-C語言C語言
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- AVL樹(查詢、插入、刪除)——C語言C語言
- 利用順序棧完成的作業題(C語言)C語言
- 順序棧、鏈棧基本操作
- c/c++ 標準順序容器 容器的訪問,刪除 操作C++
- 理解C語言宣告的優先順序規則C語言
- C語言實現順序表C語言
- 資料結構c語言實現順序表基本操作資料結構C語言
- 二叉查詢樹(查詢、插入、刪除)——C語言C語言
- 順序棧的簡單操作
- C 語言運算子優先順序
- C語言運算子優先順序C語言
- 工作293:調節刪除順序刪除
- C語言資料結構:順序棧的建立、出入棧,以及使用順序棧實現十進位制轉十六進位制C語言資料結構
- C語言實現出入棧操作C語言
- C++ forward_list 中插入和刪除操作C++Forward
- 線性表-順序表C語言實現C語言
- 順序表的基本方法實現C語言版C語言
- 【資料結構】實現順序表(c語言)資料結構C語言
- MongoDB 集合的插入、更新、刪除操作MongoDB
- 單連結串列的插入刪除操作(c++實現)C++
- 【Oracle】-【插入讀取順序】-插入讀取之間的順序關係Oracle
- C語言常被搞錯的運算子優先順序C語言
- C語言nice()函式:改變程式優先順序C語言函式
- C++ 順序容器大小操作 resizeC++
- 順序棧————遍歷、出棧、入棧
- C/C++多引數函式引數的計算順序與壓棧順序C++函式
- c運算子優先順序表-最全c語言運算子優先順序和結合性對照表C語言
- C語言unlink()函式:刪除檔案C語言函式
- @資料結構C/C++版(5)《棧的順序儲存結構以及進棧和出棧操作的實現》資料結構C++
- 棧1: 順序儲存
- 單連結串列功能函式練習——按規定插入指定節點及刪除最小值節點(C語言)函式C語言
- C++11語言擴充套件:常規特性C++套件
- Go語言運算元據庫及其常規操作Go
- 洛谷題單入門1順序結構(C語言版)C語言