数据结构与之栈

前言

栈是一种重要的数据结构,他可以允许在栈顶元素的输入和输出,他有着先入先出的特性,栈可以在函数的调用中做储存点,在递归运算中也大量的使用了
栈。

栈与线性表的关系

相同点:都是线性结构----前趋,后继,连续
不同点:栈具有固定的操作位置和操作方向
线性表是多样的操作位置和方向
同时要明确概念,栈顶,栈底,栈空,栈满

栈的数据结构

typedef int datatype;
typedef struct stack
{
	datatype [100];     //可以存放100个数据
	int top;
}seqstack;

栈的内存申请

seqstack *s =malloc(sizeof(seqstack));

入栈

void seqstack_push (seqstack s*,datatype a)
{
	s ->data  [s ->top] = a;
	s ->top++;
}

出栈

void seqstack_pop (seqstack *s)
{
	s ->top--;
}

栈顶元素的系修改

void seqstack_mod (seqstack *s,datatype a)
{
	s ->data[s ->top] =a;
}

栈的释放

int seqstack_free (seqstack *s)
{
	free (s);
}

结尾

由于栈可以理解为一个密封的容器,他只有一个出口,我们只能对于出口的元素的进行修改和查看,而不能像顺序表和链表一样进行插入,其实栈的主要功能还是栈的特殊性,栈的出栈和入栈

发布了31 篇原创文章 · 获赞 8 · 访问量 576

猜你喜欢

转载自blog.csdn.net/dongdong7_77/article/details/100167938