靜態陣列的順序棧C語言實現
#include <stdlib.h>
#include <malloc.h>
#define MAX_STACK_SIZE 100 //棧的大小
#define ERROR -1
#define OK 1
typedef struct sqstack
{
int stack_array[MAX_STACK_SIZE];
int top;
int bottom;
}SqStack;
///棧的初始化
int Init_Stack(SqStack *S)
{
S->bottom=S->top=0;
}
///進棧
int PushStack(SqStack *S, int e)
{
//使資料元素e進棧成為新的棧頂元素
if(S->top==MAX_STACK_SIZE-1)
{
printf("棧滿,返回錯誤標誌");
return ERROR;
}
S->top=S->top+1;
S->stack_array[S->top]=e;
return OK;
}
///出棧
int PopStack(SqStack *S, int e)
{
if(S->top==0)
{
printf("棧空,無法出棧元素");
return ERROR;
}
e=S->stack_array[S->top];
S->top--;
return OK;
}
///遍歷棧
int StackTravel(SqStack *S)
{
int e;
int ptr;
ptr=S->top;
while(ptr>S->bottom)
{
e=S->stack_array[ptr];
ptr=ptr-1;
printf("%d\n",e);
}
return OK;
}
///取出棧頂元素
int GetTopStack(SqStack *S, int e)
{
if(S->top==0)
{
printf("棧不存在或者棧為空\n");
return ERROR;
}
else
{
e=S->stack_array[S->top];
printf("棧頂元素為:%d\n",e);
}
}
///清空棧
int destroyStack(SqStack *S)
{
if(S->top!=S->bottom)
{
S->top=0;
}
}
int main()
{
SqStack stack2;
int m,x,n;
Init_Stack(&stack2);
printf("輸出初始化後的棧的棧頂元素:\n");
GetTopStack(&stack2,n);
for(x=1;x<5;x++)
{
PushStack(&stack2,x);
}
printf("壓入了4個元素後,輸出棧中元素:\n");
StackTravel(&stack2);
printf("輸出棧的棧頂元素:\n");
GetTopStack(&stack2,n);
destroyStack(&stack2);
}
相關推薦
靜態陣列的順序棧C語言實現
#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define MAX_STACK_SIZE 100 //棧的大小#define ERROR -1#define OK 1typ
資料結構中順序棧c語言程式碼實現
一.sqstack.h標頭檔案的程式碼 #ifndef __SQSTACK_H__ #define __SQSTACK_H__ #include<stdio.h> #include<stdlib.h> typedef int datatype; ty
鏈式棧-C語言實現
amp ron truct include 數據 類型 nod lse ext 相對於順序棧的空間有限,鏈式棧的操作則更加靈活 #include<stdio.h> #include<malloc.h> typedef int SElemType
資料結構線性表順序結構c語言實現程式碼
#include<stdio.h> #include<stdlib.h> typedef int ElementType; typedef struct LNode * PtrToLNode; struct LNode{ ElementType D
資料結構與演算法之順序表C語言實現
順序表等相關概念請自行查閱資料,這裡主要是實現。 注: 1.順序表C語言實現; 2.按較簡單的方式實現,主要幫助理解,可在此基礎上修改,更加完善; 3.提供幾個簡單函式,可自行新增功能; 4.可用C++封裝,得知STL中vector原理。 順序表容量。 #def
迴圈佇列-順序儲存-c語言實現
/* 迴圈佇列-線性表-順序結構 */ #include<stdio.h> #define OK 1; #define ERROR 0; #define MAXSIZE 20 typedef int QElemType; typedef
靜態連結串列及C語言實現
邏輯結構上相鄰的資料元素,儲存在指定的一塊記憶體空間中,資料元素只允許在這塊記憶體空間中隨機存放,這樣的儲存結構生成的連結串列稱為靜態連結串列。 靜態連結串列和動態連結串列的區別:靜態連結串列限制了資料元素存放的位置範圍;動態連結串列是整個記憶體空間。 圖1 靜態連結
資料結構棧C語言實現
根據《大話資料結構》整理 #include <stdio.h> #define MAXSIZE 20 #define OK 1 #define ERROR 0 #define TR
靜態陣列實現的順序表(C語言實現)
在寫順序表之前我們先來了解下相關的一些知識,以便我們後期能夠寫出更好的東西。資料結構是相互之間存在一種或多種特定關係的資料元素的集合。根據資料元素之間關係的不同特性,通常有如下種基本結構:集合:結構中的元素之間除了“同屬於一個集合”的關係外,別無其他的關係。如:廣義表。線性結
順序棧的c語言實現和OOP實現
目錄 C語言實現順序棧和OOP實現順序棧 1,順序棧 2,C語言實現順序棧 3,用OOP實現一個順序棧 C語言實現順序棧和OOP實現順序棧 1,順序棧 (1)定義:棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除
C語言實現靜態順序表
實現順序表分為以下幾步: 1.先寫出封裝順序表結構的結構體; 2.初始化順序表; 3.增刪查改; 4.順序表的逆置等。 #define MAX_SIZE 100 typedef int DataType; typedef struct SeqList { DataType d
【資料結構】棧的順序儲存結構 C語言實現
棧(stack),是一種線性儲存結構,它有以下幾個特點: 棧中資料是按照"後進先出(LIFO, Last In First Out)"方式進出棧的。 向棧中新增/刪除資料時,只能從棧頂進行操作。 基本操作 initStack(&S) destroySt
順序棧的基本操作(入棧和出棧)及C語言實現詳解
棧,可以理解為遵循“後入先出”原則的線性表,因此棧結構可以採用順序表或連結串列實現。 順序棧的實現採用的是順序表,也就是陣列。 順序棧的實現思想是:在陣列中設定一個隨時指向棧頂元素的變數(一般命名為 top ),當 top 的值為 -1 時,說明陣列中沒有資料,即棧中沒有資料元素,為“空棧”;只要資料元素
C語言實現順序棧的初始化&進棧&出棧&讀取棧頂元素
/*順序表實現棧的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //設棧中元素個數為50 #define OK 1 #define ERROR 0
C語言實現棧(陣列)
陣列實現棧 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 1000 #define element_type
C語言實現棧(基於陣列)
棧是一種操作受限的資料結構,只允許從一段操作,而且先進後出(FILO first in last out)這裡將棧的操作封裝在C語言的標頭檔案裡 實現棧的程式碼如下 #include<stdbool.h> #define maxsize 10 typed
C語言實現順序棧的括號匹配
//順序棧的使用舉例:括號的匹配 #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE
c語言實現順序棧的基本功能
#include<stdio.h> #include<stdlib.h> #define maxsize 100 typedef struct SqStack{ int data[maxsize]; int top; }SqStack,*pSqStac
C語言實現順序棧的基本操作
//標頭檔案內容//--------------------棧的順序儲存結構-------------------- #define STACK_INIT_SIZE 100 #define STACKINCREACE 10 typedef int Elemtype;//在
【C語言實現反轉陣列】(用棧實現)51nod
題幹: 輸入一個長度為n(1 <= n <= 100000)陣列,倒序輸出他。 陣列中的元素ai滿足(1 <= ai <= 100000)。 Input 第一行一個整數n