目录
栈
顺序栈
创建栈:
清空栈:
判断栈是否空 :
进栈 :
出栈 :
取栈顶元素:
栈
栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈)
允许进行操作的一端称为“栈顶”
另一固定端称为“栈底”
当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。
顺序栈
它是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下标表示的栈顶指针top(相对指针)完成各种操作。
typedef int data_t ; /*定义栈中数据元素的数据类型*/
typedef struct {
data_t *data ; /*用指针指向栈的存储空间*/
int maxlen; /*当前栈的最大元素个数*/
int top ; /*指示栈顶位置(数组下标)的变量*/
} sqstack; /*顺序栈类型定义*/
创建栈:
sqstack *stack_create (int len) {
sqstack *ss; ss = (seqstack *)malloc(sizeof(sqstack));
ss->data = (data_t *)malloc(sizeof(data_t) * len);
ss->top = -1;
ss->maxlen = len;
return ss;
}文章来源地址https://www.toymoban.com/news/detail-439385.html
清空栈:
stack _clear(sqstack *s) {
s-> top = -1 ;
}
判断栈是否空 :
int stack_empty (sqstack *s) {
return (s->top == -1 ? 1 : 0);
}
进栈 :
void stack_push (sqstack *s , data_t x) {
if (s->top = = N - 1){
printf ( “overflow !\n”) ;
return ;
} else {
s->top ++ ;
s->data[s->top] = x ;
} return ;
}
出栈 :
datatype stack_pop(sqstack *s) {
s->top--;
return (s->data[s->top+1]);
}
取栈顶元素:
datatype get_top(sqstack *s) {
return (s->data[s->top]);文章来源:https://www.toymoban.com/news/detail-439385.html
}
到了这里,关于4.4 栈实现及其应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!