#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++数据结构---链式栈 #### 概述 链式栈是栈的一种实现方式,它使用链表作为存储结构。与数组实现的顺序栈相比,链式栈在内存分配上更加灵活,无需预分配固定大小的空间。本文将详细介绍如何在VS2010环境下...
链式栈是一种线性数据结构,它以链表的形式存储元素,与数组栈不同,链式栈不需预先分配固定大小的空间,具有动态扩展和收缩的能力。在C++中,我们可以利用模板类来创建泛型数据结构,适用于各种类型的数据。然而,...
在本文中,我们将深入探讨如何使用C语言,结合链式栈结构和回溯算法来解决迷宫问题,并提供两种不同的输出形式:数组输出和三元组输出。首先,我们需要了解迷宫问题的基本概念。 迷宫问题是一个经典的路径寻找问题...
链式栈是一种特殊的栈结构,它的存储方式与传统的顺序栈(数组实现的栈)不同,不是在内存中连续分配空间,而是通过链表的数据结构来实现。链式栈的每个元素称为节点,每个节点包含数据域和指针域,指针域指向下一个...
本文将深入探讨四个重要的数据结构概念:线性表、顺序表、顺序栈和链式栈,这些都基于C++语言实现。 首先,线性表是一种最基础的数据结构,它是由n(n>=0)个相同类型元素构成的有限序列。每个元素都有一个唯一的...
### 链式栈定义与实现 #### 一、链式栈的概念 链式栈是一种特殊的线性表,它只允许在表的一端进行插入和删除操作,这一端称为栈顶,另一端称为栈底。当一个元素被插入时,它会成为新的栈顶元素;当一个元素被删除...
链式栈,本程序系数据结构课程课本实例,亲测可用
链式栈(Chain Stack),又称为链接栈,是数据结构中栈的一种实现方式。与顺序栈(Array Stack)相比,链栈在动态扩展性上有显著优势,它不需要预先分配固定大小的存储空间,而是通过链表节点动态地进行内存分配和...
2_链式栈的初始化.c
链式栈的栈的实现! C++····························
数据结构,创建链式栈(输入命令式),C++实现创建链式栈
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语言实现的数据结构应用,主要涉及了迷宫问题的解决、链式栈的操作以及路径搜索算法。下面将详细讲解这些知识点。 首先,迷宫问题是一个经典的图论问题,通常通过深度优先...
linkstack链式栈示例代码演示,包含工程文件及代码文件
本教程将详细介绍如何在Ubuntu Linux平台上利用链式栈实现对指定目录的深度搜索,以查找特定类型的文件,例如`.c`源代码文件。链式栈是一种数据结构,它允许我们在处理文件路径时具有更灵活的操作能力,尤其是在遍历...
链式栈是数据结构中栈的一种实现方式,与顺序栈相比,它在处理大量数据时具有更大的灵活性。本文将深入探讨链式栈的基本概念、结构以及C语言中的实现方法。 链式栈是一种线性结构,它遵循“后进先出”(Last In ...