棧基礎學習

2021-07-01 19:30:15 字數 1535 閱讀 9999

本文主要針對棧的實現進行學習

首先是標頭檔案,宣告所要用的函式和結構體

#ifndef stack_h_

#define stack_h_

struct stacks;

typedef struct stacks *stack;

//建立乙個空棧

stack create(int scale);

//判斷是否為空棧

int isempty(stack s);

//push

void push(stack s,int x);

//pop

void pop(stack s);

#endif // stack_h_

然後定義結構體和相應的操作函式

#include 

#include

#define minstack 100

#include "main.h"

struct stacks

;//建立乙個空棧

stack create(int scale)

stack s=malloc(sizeof(struct stacks));

s->topofstack=-1;

s->capacity=scale;

s->array=malloc(sizeof(int)*scale);

printf("success\n");

return s;

}//判斷是否是乙個空的棧

int isempty(stack s)

//向棧中新增乙個數字

void push(stack s,int x)

s->array[s->topofstack+1]=x;

s->topofstack++;

printf("push success\n");

}//pop

void pop(stack s)

s->topofstack--;

printf("pop success\n");

}//取頂部元素

int top(stack s)

return s->array[s->topofstack];

}//釋放棧

void disposestack(stack s)

接下來構造乙個棧來實現相應的操作

int main()

練習 1 構造乙個棧,可以判斷輸入的字串中的括號(圓括號,方括號,花括號)是否配對。

int main()

if(abs(tem_char-tem_top)>2)

break;

else

pop(s1);

}} if(isempty(s1))

printf("right\n");

else

printf("wrong\n");

return

0;}

java基礎學習 2 堆和棧

引用型別的變數,其記憶體分配在堆上或者常量池 字串常量 基本資料型別常量 需要通過new等方式來建立。堆記憶體主要作用是存放執行時建立 new 的物件。主要用於存放物件,訪問速度慢,可以執行時動態分配記憶體,生存期不需要提前確定 基本資料型別的變數 int short long byte float...

棧基礎操作

define maxsize 50 typedef struct sqstackvoid initstack sqstack s bool stackempty sqstack s bool push sqstack s,elemtype x bool pop sqstack s,elemtype ...

理論基礎 棧 鏈棧

template struct node template class linkstack 將棧首指標設為 null 即可 template linkstack linkstack template linkstack linkstack 將新元素存入棧 棧指標指向下一元素 template voi...