c语言链栈案例,C语言链栈

链栈是用链表来表示的栈,其实质上还是链表,插入使用的是尾插法,只不过一直使用top指针来操作栈,而这个top指针就是main函数中的那个初始指针,入栈和出栈都是和链表一样的操作。可能唯一不同的就是在main函数中栈的初始化不需要分配空间(当然也可以分配空间,看个人实际代码操作)

#include

#include

typedef struct node{

int data;

struct node *next;

}LinkStack;

//判断是否为栈空

int isEmpty(LinkStack *ls){

if(ls==NULL)

return ;

return ;

}

//出栈

LinkStack *outStack(LinkStack *ls){

LinkStack *p = ls;

ls = p->next;

free(p);

return ls;

}

//入栈

LinkStack *inStack(LinkStack *ls,int e){

LinkStack *p = (LinkStack *)malloc(sizeof(LinkStack));

p->data = e;

p->next = NULL;

p->next = ls;

ls = p;

return ls;

}

//为了打印,迫不得已

void display(LinkStack *ls){

LinkStack *p = ls;

while(p!=NULL){

printf("%d ",p->data);

p = p->next;

}

}

void main(){

LinkStack *ls = NULL; //这个指针就是top指针

int i,num[] = {,,,,,};

for(i=;i

ls = inStack(ls,num[i]);

display(ls);

}

C语言简单实现链栈基本几个功能(适合新手看,大神可指正)

接着上一次的顺序栈,今天我记一下链栈,因为我也是刚学不久,有些地方也稍稍理解不了,所以,一起共勉.我会用我自己结合教材上画的图,争取跟代码一起结合,用文字和图最大化的解释代码,这样的话 ...

C语言简单实现链栈基本几个功能

接着上一次的顺序栈,今天我记一下链栈,因为我也是刚学不久,有些地方也稍稍理解不了,所以,一起共勉.我会用我自己结合教材上画的图,争取跟代码一起结合,用文字和图最大化的解释代码,这样的话 ...

C语言实现链栈以及基本操作

链栈,即用链表实现栈存储结构.链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶:链栈也如此,通常我们将链表的头部作为栈顶,尾部作为栈底,如下下图所示: 将链表头部作为 ...

【小白成长撸】--链栈(C语言版)

// 链栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include #include

C语言实现链栈的初始化&进栈&出栈&读取栈顶元素

/*链表实现栈的一系列操作*/ #include #include #define OK 1 #define ERROR 0 typede ...

链栈的基本操作(C语言)

栈的链式储存结构称为链栈.链栈的节点类型与链式线性表的节点类型 定义相同,不同的是它是仅在表头进行操作的单链表.链栈通常用不带头节 点的单链表来实现,栈顶指针就是链表的头指针 ,如图所示: 代码如下: ...

C语言——链式存储实现栈的基本运算算法

Lkstack.h // 链栈的定义 typedef struct node { int data; struct node *next; }LkStk; main.c #include

数据结构 - 链栈的实行(C语言)

数据结构-链栈的实现 1 链栈的定义 现在来看看栈的链式存储结构,简称为链栈. 想想看栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢?由于单链表有头指针,而栈顶指针也是必须的,那干吗不让它 ...

C语言数据结构链栈(创建、入栈、出栈、取栈顶元素、遍历链栈中的元素)

/**创建链栈*创建一个top指针代表head指针*采用链式存储结构*采用头插法创建链表*操作 创建 出栈 入栈 取栈顶元素*创建数据域的结构体*创建数据域的名称指针*使用随机函数对数据域的编号进行赋 ...

随机推荐

<nginx.conf> nginx用户权限

Nginx用户权限 在nginx.conf文件的第一行一般是设置用户的地方(编译安装nginx时的参数--user=也是指定用户的地方),如 user www www; 如不指 ...

由Memcached升级到 Couchbase的 Java 客户端的过程记录(三)

采用之前的源码运行后,我们发现 只有一个配置信息 即servers=127.0.0.1:11211,即 Couchbase Server的服务所在ip 和端口,此时数据直接存在 default 中 根 ...

【DevOps】DevOps成功的八大炫酷工具

为自动化和分析所设计的软件及服务正加速devops改革的步伐,本文为你盘点了Devops成功的八大炫酷工具 Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势.开发人员和运营人员历 ...

Cannot override the final method from SherlockFragmentActivity

调用ActionBarSherlock后页面找不到onCreateOptionsMenu报错 com.actionbarsherlock.app.SherlockFragmentActivity.on ...

NVDIMM典型应用及技术发展

1.典型应用之全系统保护 全系统保护采用超级内存作为系统主存.在系统异常掉电时,将整个系统的运行状态(包括CPU,芯片组,其他外设以及所有进程的信息)存入超级内存.在供电恢复后,利用超级内存中的数据, ...

svn 标示提示

原来没有遇到过, 突然发现这次写的项目有几个文件时 这个"表示的" ,死活找不到原因,并且提交,改动 都好烦人,还要锁定什么嘛的. 最后最终知道, 这个意思是  文件的状态为 &q ...

Python网络编程学习_Day9

一.socketserver实现多并发 socket只能实现单进程通讯,要实现多进程同时和服务端通讯就要使用socketserver. 代码如下: import socket client = soc ...

一般增广路方法求网络最大流(Ford-Fulkerson算法)

/* Time:2015-6-18 接触网络流好几天了 写的第一个模版————Ford-Fulkerson算法 作用:求解网络最大流 注意:源点是0 汇点是1 如果题目输入的是1到n 请预处理减1 * ...

单机部署-consul

在本机开发环境中,直接通过以下命令可以启动一个单机consul服务器: ./consul agent -server -data-dir=/tmp/consul -bootstrap -adverti ...

linux下访问window的共享文件,在命令行实现方法

1.挂载共享目录 mount -t cifs //192.168.0.1/aa  /tmp/export -o username=text,password=test //192.168.0.1/aa ...

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值