【栈的基本 *** 作】

【栈的基本 *** 作】,第1张

【栈的基本 *** 作】 栈

1.先进后出的结构
2.主要有顺序栈和链式栈两种
顺序栈

顺序栈类似于数组,但是只能使用一个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访问

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5658532.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存