1. 程式人生 > >c語言實現順序棧的基本功能

c語言實現順序棧的基本功能

#include<stdio.h>
#include<stdlib.h>
#define maxsize 100
typedef struct SqStack{
int data[maxsize];
int top;
}SqStack,*pSqStack;

void initSqStack(pSqStack p){
	p->top=-1;
	printf("success");
}
int SqStackEmpty(pSqStack p){
	return(p->top==-1?1:0);
}
void push(pSqStack p,int x){
	if(p->top==maxsize-1){
		printf("FULL");
		return;
	}
	p->data[++p->top]=x;
}
void pop(pSqStack p){
	if(p->top==-1){
	return;
	}
	printf("出棧的值:%d",p->data[p->top]);
	p->top--;
}

void printStack(pSqStack p){
	while(p->top!=-1){
		printf("棧元素:%d\n",p->data[p->top--]);
	}
}

void main(){
	SqStack s={{1,7,5,8},3};
	push(&s,9);
	pop(&s);
	printStack(&s);
	system("pause");
}

注意:(1).top是棧頂元素在陣列中的索引,top為-1代表空

(2).i++是先用i再加1,++i是先加1再用i

(3).順序棧的缺點是必須事先給棧分配一個大空間(maxsize),這顯然浪費儲存空間

(4).順序棧裡面的元素特點是先進後出

相關推薦

c語言實現基本功能

typedef struct node{ int data; node *next; }Node,*pNode; typedef struct{ pNode top; int count; }LinkStack,*pLinkStack; 注意:(1).首先定義節點結構體

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語言實現順序的初始化&進&出&讀取頂元素

/*順序表實現棧的一系列操作*/ #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 OK      1 #define ERROR   0 #define TRUE    1 #define FALSE  

c語言順序實現

#include<iostream> #include<stdio.h> #include<math.h> #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 using name

C語言實現順序表的基本操作

1.定義 線性表的順序儲存是指在記憶體中用一組地址連續的儲存單元依次儲存線性表的各元素,用這種儲存形式儲存的線性表稱為順序表。也就是說,順序表以資料元素在計算機內的物理位置相鄰來表示資料元素線上性表中的邏輯相鄰關係。 2.線性表的順序儲存示意圖

C語言實現線性表基本操作

style eal struct fine fin delete class logs destroy #include <stdio.h> #include <tchar.h> #include <stdlib.h> #define

[領卓教育]用C語言實現ls以及ls-功能

各位程式設計師在自己的虛擬機器裡一定沒少執行過“ls”這個功能吧,這個程式碼就是實現了ls和ls-l功能,話不多說,上程式碼。 實現程式碼 int process_ls(char * path) { DIR * dirp; struct dire

資料結構-C語言實現順序

#include<stdio.h> #include<stdlib.h> #define ERROR 0 #define LIST_INIT_SIZE 100 #define LISTINCREAMENT 10 #define OK 1

資料結構-C語言實現線性

#include<stdio.h> #include<stdlib.h> #define STACK_INIT_SIZE 100//儲存空間初始化分配量 #define STACKINCREAMENT 10//儲存空間分配增量 #defi

C語言實現的初始化&進&出&讀取頂元素

/*連結串列實現棧的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typedef struct node { int data; struct node *

C語言實現

link sca 函數 print urn max efi fin size 我自己寫的代碼部分: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h>

聰明的學生C語言實現

不寫初中高階這種實驗啦 直接上STL吧 /如果有不懂的話可以看看STL容器,我直接給個百度百科的連結吧https://baike.baidu.com/item/STL/70103?fr=aladdin/ 聰明的學生(實驗名稱) 一、實驗目的 掌握遞迴思想,將“聰明的學生”問題抽象出遞

資料結構 c語言實現順序佇列(輸數字入隊,字元出隊)

一.標頭檔案seqqueue.h實現 #ifndef __SEQQUEUE_H__ #define __SEQQUEUE_H__ #include<stdio.h> #include<stdlib.h> #include<stdbool.h&g

0x00資料結構——C語言實現+字尾表示式計算)

0x00資料結構——C語言實現(棧) 棧的實現 /* 棧(tack)是限制插入和刪除只能在一個位置上進行的表,該位置是表的末端,叫做棧的頂(top)。 對棧的基本操作有Push(進棧)和Pop(出棧)。 Functions: (在連結串列中增加

c語言實現一個strcat函式功能相同的函式

extern char *strcat(char *dest,char *src); 把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'。 #include "std

c語言順序的應用(二) 判斷迴文數

#include<iostream> #include<stdio.h> #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 using namespace std; typedef stru

C語言實現順序表的增刪查改和逆置

在資料結構中,我們最開始接觸的就是順序表,那麼順序表是什麼呢?順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組地址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組地

C語言實現順序佇列的初始化、入隊、出隊等操作(三)

佇列是一種只能在隊頭刪除、隊尾插入的線性表,本文實現佇列的順序結構,使用一個結構體包含隊頭指標、隊尾指標、佇列的長度這三個成員。通過malloc函式為佇列開闢一片記憶體,大小為100個單位(100*資料型別所佔位元組),將隊頭指標指向起始地址,隊尾指標也指向起始地址。佇列的