本文主要針對棧的實現進行學習
首先是標頭檔案,宣告所要用的函式和結構體
#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...