本次程式是以實現棧的基本操作為目的(主要包括棧的初始化、入棧、出棧、取棧頂元素和銷毀棧):
程式**:#include
#include
#define seqstacktype char
#define seqmax 1000
typedef structseqstack;
//初始化
void seqstackinit(seqstack* seq)
//銷毀
void seqstackdestroy(seqstack* seq)
//入棧
void seqstackpush(seqstack* seq,seqstacktype value)
seq->data[seq->size] = value;
++seq->size;
}//出棧
void seqstackpop(seqstack* seq,seqstacktype* value)
if(seq->size == 0)
*value = seq->data[seq->size-1];
--seq->size;
}//取棧頂元素
int getstacktop(seqstack* seq,seqstacktype* value)
if(seq->size == 0)
*value = seq->data[seq->size-1];
return 1;
}void printstack(seqstack* seq,char * str)
printf("\n");
}檢測**:void teststack()
int main()
檢測結果:
[chaiyandong@miwifi-r1cl-srv shujujiegou]$ ./stack
*******初始化************
except: 1 actual: 1
except: d actual: d
*******入棧四個元素************
a b c d
*******出棧乙個元素************
a b c
value expect: d actual: d
except: 1 actual: 1
except: d actual: c
*******出棧倆個元素************
a b
value expect: c actual: c
except: 1 actual: 1
except: d actual: b
*******出棧三個元素************
a value expect: b actual: b
except: 1 actual: 1
except: d actual: a
*******出棧四個元素************
value expect: a actual: a
except: 0 actual: 0
*******入棧四個元素************
c c c c
*******銷毀************
棧 的基本操作。
include include typedef struct node node,pnode typedef struct stack stack,pstack void initialize pstack mystack 棧的初始化。int push stack pstack mystack,in...
棧的基本操作
描述 棧是一種重要的資料結構,它具有push k和pop操作。push k是將數字k加入到棧中,pop則是從棧中取乙個數出來。棧是後進先出的 把棧也看成橫向的乙個通道,則push k是將k放到棧的最右邊,而pop也是從棧的最右邊取出乙個數。假設棧當前從左至右含有1和2兩個數,則執行push 5和po...
棧的基本操作
下面先實現站的基本功能,最後通過乙個test來測試下方法是否實現 建個.c檔案 typedef struct seqstack 初始化 seqstack seqstackinit return null 判斷棧是否為空 int seqstackisempty seqstack s void seqs...