建立stack.h
#pragma once
//棧:一種訪問受限的線性表,只能在一端進行資料操作,能操作
//順序棧,棧頂設計在順序表的表尾處,因為順序表尾插和尾刪都是o(1)
#define init_size 10
typedef
struct seqstack
seqstack,
*pseqstack;
//初始化
void
initstack
(pseqstack ps)
;//入棧
bool push
(pseqstack ps,
int val)
;//出棧,獲取棧頂值,並刪除棧頂元素
bool pop
(pseqstack ps,
int*rtval)
;//獲取棧頂值,但不刪除
bool gettop
(pseqstack ps,
int*rtval)
;//判空
bool isempty
(pseqstack ps)
;//獲取長度
intgetlength
(pseqstack ps)
;//清除資料
void
clear
(pseqstack ps)
;//銷毀棧
void
destory
(pseqstack ps)
;
建立stack.cpp
#include
#include
#include
#include
"stack.h"
//判空
static
void
deterpointnull
(pseqstack ps)
}//初始化
void
initstack
(pseqstack ps)
//判滿
static bool isfull
(pseqstack ps)
//擴容
static
void
inc(pseqstack ps)
//入棧
bool push
(pseqstack ps,
int val)
ps->elem[ps->top++
]=val;
//ps->top++;
return true;
}//出棧,獲取棧頂值,並刪除棧頂元素
bool pop
(pseqstack ps,
int*rtval)
//rtval:輸出引數:通過輸出引數可以將多個值返回
*rtval=ps->elem[ps->top-1]
; ps->top--
;return true;
}//獲取棧頂值,但不刪除
bool gettop
(pseqstack ps,
int*rtval)
*rtval=ps->elem[ps->top-1]
;return true;
}//判空
bool isempty
(pseqstack ps)
//獲取長度
intgetlength
(pseqstack ps)
//清除資料
void
clear
(pseqstack ps)
//銷毀棧
void
destory
(pseqstack ps)
鏈棧的入棧 出棧 獲取長度 獲取棧頂值等相關操作
建立lstack.h pragma once 鏈式棧 利用帶頭節點的單鏈表實現 棧頂為第乙個資料結點,因為 頭插o 1 頭刪 o 1 有尾指標的的尾插 o 1 有尾指標的尾刪o n typedef struct snode snode,plstack 注意 鏈式棧不需要top,因為頭結點的next即...
棧元素入棧出棧操作(C)
元素入棧時,會先將棧壓入,top指標再向上加一。c語言如何實現呢,下面是入棧的 片段 typedef struct node sqstack void push sqstack s,int elem 入棧 s top elem,s本為指向node結構的乙個指標,本來對普通結構體指標賦值或者使用用 s...
棧的入棧,出棧,顯示入棧元素
要實現的功能如下 printf t t1.入棧 n printf t t2.出棧 n printf t t3.顯示棧內元素 n define maxsize 5 巨集定義 typedef struct stack 定義棧 void push stack p,int e void printstack...