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

 #include<stdio.h>
#include<stdlib.h> 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<;i++)
ls = inStack(ls,num[i]); display(ls); }

C语言链栈的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. bmp制作自定义字体(cocostudio使用)

    工具需求:bmpfont 1.步骤 (1)制作 * 把自己的字体放到一个txt文件中,写个脚本抽离出来, 重复了没有关系 * Edit->Select chars from fils(注意:Ed ...

  2. Python学习---Django的基础学习

    django实现流程 Django学习框架:     #安装: pip3 install django          添加环境变量    #1  创建project       django-ad ...

  3. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

  4. windows下sqli-labs的搭建及学习(GET篇)

    环境搭建: 源码下载地址:https://github.com/Audi-1/sqli-labs 需要搭建以下环境: apache+mysql+php Tomcat+mysql+java(部分关卡需要 ...

  5. JS:二维数组排序和获取子级元素

    JS:二维数组排序和获取子级元素 1. 二维数组排序 1.按数值排序 var arr = [[1, 2, 3], [7, 2, 3], [3, 2, 3]]; 如果我们要按每个子数组的第一列来排序要如 ...

  6. canvas小球 时间倒计时demo-优化

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  7. 【Java123】Yaml格式

    yaml文件与java bean互转 https://blog.csdn.net/z04915231/article/details/60143947 Yaml转换list,json,map工具类 h ...

  8. 使用iframe标签隐藏CSRF代码

    index.html <iframe src="1.html" width="0" height="0"></iframe ...

  9. Microsoft visual c++ 14.0 is required问题

    错误信息: error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Too ...

  10. struts2的动态方法调用(DMI)和通配符映射

    动态方法调用   1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即 ...