
顺序栈类似于数组,但是只能使用一个top访问,
元素的插入和删除都是通过top来进行.
顺序栈 顺序栈结构体的定义链式栈
链式栈与链表相似,主要是通过指针访问
typedef struct stack
{
int nums[10];
int top;
}stack,*pstack;
stack s
栈的初始化 *** 作
void init(pstack s) memset(s->num,0,sizeof(s->nums)); s->top=-1;出栈和入栈
void push(pstack s,int val) s->nums[++s->top]=val; int pop(pstack s) return s->nums[s->top--];链式栈 链式栈结构体的定义
typedef struct node
{
int data;
struct node* next;
}node,*pnode;
这里使用top与bottom当top等于bottom时栈为空栈
typedef struct stack
{
pnode top;
pnode bottom;
}stack,*pstack;
初始化
void init(pstack s)
{
s->top=(pnode)malloc(sizeof(node));
s->bottom=s->top;
s->top->next=NULL;
return;
}
入栈 *** 作
void insert(pstack s,int val)
{
//创建一个节点来保存数据
pnode cur=(pnode)malloc(sizeof(node));
cur->data=val;
cur->next=s->top;
s->top=cur;
cur=NULL;
}
出栈 *** 作
void delete(pstack s)
{
pnode cur=s->top;
s->top=s->top->next;
free(cur);
cur=NULL;
}
以上就是一些栈的基本 *** 作,其他 *** 作大体相似就是使用top访问
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)