`
chengzhi_hong
  • 浏览: 168304 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

链式栈

 
阅读更多

#include "stdio.h"
#include "malloc.h"
typedef struct Node
{
    int info;
    Node *link;
}*PNode;
typedef struct LinkStack
{
    PNode top;
}*PLinkStack;
PLinkStack createEmpty_link()
{
    PLinkStack plastack;
    plastack=(PLinkStack)malloc(sizeof(LinkStack));
    if(plastack!=NULL)
        plastack->top=NULL;
    else
        printf("Out of space!\n");
    return plastack;
}
int isEmptyStack_link(PLinkStack plastack)
{
    return (plastack->top==NULL);
}
void push_link(PLinkStack plastack,int x)
{
    PNode p;
    p=(PNode)malloc(sizeof(Node));
    if(p==NULL)
        printf("Out of space");
    else
    {
        p->info=x;
        p->link=plastack->top;
        plastack->top=p;
    }
}
void pop_link(PLinkStack plastack)
{
    PNode p;
    if(isEmptyStack_link(plastack))
        printf("Empty stack pop.\n");
    else
    {
        p=plastack->top;
        plastack->top=plastack->top->link;
        free(p);
    }
}
int top_link(PLinkStack plastack)
{
    return (plastack->top->info);
}
int main()
{
    PLinkStack plastack;
    int N;
    plastack=createEmpty_link();
    printf("Please input number to N!\n");
    scanf("%d",&N);
    for(int i=0;i<N;i++)
    {
        int x;
        printf("Please input number to x!\n");
        scanf("%d",&x);
        push_link(plastack,x);
    }
    printf("The top number is %d",top_link(plastack));
}

分享到:
评论

相关推荐

    数据结构链式栈

    ### 数据结构链式栈知识点详解 #### 一、链式栈概述 链式栈是一种采用链表作为存储结构的栈,其主要特点是不需要预分配存储空间,因此在处理大规模数据时更加灵活。链式栈的基本操作包括:创建空栈、入栈、出栈等...

    c++链式栈类

    在C++编程中,链式栈是一种非常重要的数据结构,它是栈的一种实现方式,与顺序栈(数组实现)相比,链式栈具有更好的灵活性。在本项目中,我们重点讨论如何使用C++来定义和实现一个链式栈类,以及验证其基本功能,如...

    用链式栈实现简易计算器

    链式栈是一种特殊的数据结构,它是栈的一种实现方式,与数组实现的栈相比,具有更大的灵活性,特别是在存储空间的动态扩展方面。在这个“用链式栈实现简易计算器”的项目中,开发者利用C++(混入少量C语言特性)构建...

    c++数据结构---链式栈

    ### c++数据结构---链式栈 #### 概述 链式栈是栈的一种实现方式,它使用链表作为存储结构。与数组实现的顺序栈相比,链式栈在内存分配上更加灵活,无需预分配固定大小的空间。本文将详细介绍如何在VS2010环境下...

    C语言实现链式栈的模板

    链式栈是一种线性数据结构,它以链表的形式存储元素,与数组栈不同,链式栈不需预先分配固定大小的空间,具有动态扩展和收缩的能力。在C++中,我们可以利用模板类来创建泛型数据结构,适用于各种类型的数据。然而,...

    利用链式栈结构求迷宫问题所有解:回溯算法,两种输出形式数组输出和三元组输出

    在本文中,我们将深入探讨如何使用C语言,结合链式栈结构和回溯算法来解决迷宫问题,并提供两种不同的输出形式:数组输出和三元组输出。首先,我们需要了解迷宫问题的基本概念。 迷宫问题是一个经典的路径寻找问题...

    链式栈实现

    链式栈是一种特殊的栈结构,它的存储方式与传统的顺序栈(数组实现的栈)不同,不是在内存中连续分配空间,而是通过链表的数据结构来实现。链式栈的每个元素称为节点,每个节点包含数据域和指针域,指针域指向下一个...

    线性表,顺序表,顺序栈,链式栈

    本文将深入探讨四个重要的数据结构概念:线性表、顺序表、顺序栈和链式栈,这些都基于C++语言实现。 首先,线性表是一种最基础的数据结构,它是由n(n&gt;=0)个相同类型元素构成的有限序列。每个元素都有一个唯一的...

    链式栈定义

    ### 链式栈定义与实现 #### 一、链式栈的概念 链式栈是一种特殊的线性表,它只允许在表的一端进行插入和删除操作,这一端称为栈顶,另一端称为栈底。当一个元素被插入时,它会成为新的栈顶元素;当一个元素被删除...

    可实现链式栈

    链式栈,本程序系数据结构课程课本实例,亲测可用

    链式栈liststack

    链式栈(Chain Stack),又称为链接栈,是数据结构中栈的一种实现方式。与顺序栈(Array Stack)相比,链栈在动态扩展性上有显著优势,它不需要预先分配固定大小的存储空间,而是通过链表节点动态地进行内存分配和...

    2_链式栈的初始化.c

    2_链式栈的初始化.c

    链式栈的实现!!C++

    链式栈的栈的实现! C++····························

    数据结构C++创建链式栈(输入命令式)

    数据结构,创建链式栈(输入命令式),C++实现创建链式栈

    19.链式栈.wmv(目前数据结构最好的视频,共42集,需要哪一集的知识自己下,一集3积分)

    17循环链表 18双项链表 19链式栈 20链式队列 21STL_list类 22基数排序 23属 24二叉树 25二叉树找数 26红黑树 27红黑树_0 28红黑树_1 29红黑树_2 30红黑树_3 31红黑树_4 32红黑树_5 33红黑树_6 34堆 35堆排序 36...

    后缀表达式/波兰表达式/链式栈的应用

    链式栈是栈这一数据结构的一种实现方式,与数组实现的栈不同,链式栈使用链表来存储元素。链式栈的优点在于动态扩展性,当需要添加元素而栈顶指针尚未到达链表末尾时,可以方便地插入新元素,无需预先估计栈的大小。...

    迷宫+c+链式栈

    在本项目中,"迷宫+c+链式栈"是一个基于C语言实现的数据结构应用,主要涉及了迷宫问题的解决、链式栈的操作以及路径搜索算法。下面将详细讲解这些知识点。 首先,迷宫问题是一个经典的图论问题,通常通过深度优先...

    linkstack链式栈.zip_LinkStack_linkstack链式栈_链式栈

    linkstack链式栈示例代码演示,包含工程文件及代码文件

    Linux链式栈搜索指定目录下的文件

    本教程将详细介绍如何在Ubuntu Linux平台上利用链式栈实现对指定目录的深度搜索,以查找特定类型的文件,例如`.c`源代码文件。链式栈是一种数据结构,它允许我们在处理文件路径时具有更灵活的操作能力,尤其是在遍历...

    《数据结构》(C语言)链式栈的基本操作

    链式栈是数据结构中栈的一种实现方式,与顺序栈相比,它在处理大量数据时具有更大的灵活性。本文将深入探讨链式栈的基本概念、结构以及C语言中的实现方法。 链式栈是一种线性结构,它遵循“后进先出”(Last In ...

Global site tag (gtag.js) - Google Analytics