栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【栈的基本操作】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【栈的基本操作】

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访问

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号