链式堆栈【数据结构-朱战立】

程序设计与数据结构》周立功电子书. ᴰ䘁ॱཊᒤᶕˈ䖟Ԧӗъ઼ӂ㚄㖁ӗъⲴ䗵⥋ਁኅˈ㔉ӪԜᨀ׋Ҷ⭘↖ѻൠˈ਼ᰦҏ㔉 䖟Ԧᐕ〻ᮉ㛢ᨀࠪҶᐘབྷⲴ᥁ᡈDŽ㺘䶒кⴻ䎧ᶕˈ䙊䗷♼䗃⸕䇶ਟԕ䇙ӪާᴹᖸᕪⲴ㘳䈅㜭 ࣋ˈতᖰᖰ㓿н䎧⭘ӪঅսⲴỰ傼˄ㅄ䈅઼ᵪ䈅˅DŽ㲭❦བྷᇦ䜭⸕䚃ˈᮉ㛢Ⲵᵜ䍘൘Ҿษޫ ӪԜ␡ޕ᥆ᧈⲴࡋ䙐࣋ǃྭཷᗳǃ⤜⢩Ⲵᙍ㘳㜭઼࣋䀓ߣᐕ〻ᢰᵟⲴ㜭࣋ˈնᇎ䱵кᡁԜⲴ ᮉᆖᇎ䐥оᮉ㛢⨶ᘥ㛼䚃㘼傠DŽ 立即下载
/*本程序是链式堆栈程序 数据结构-朱战立 第三版 第三章完整程序*/

/*环境 vs2013+win7*/

/*2018年8月17日 10:19:21*/

//这是一个链式堆栈的判空、压栈、出栈、取栈顶等操作
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>


#define MaxSize 100
typedef int bool;
#define T 1
#define F 0

typedef int DataType;
typedef struct stack{
    DataType data;
    struct stack *next;
}ListStack;

//堆栈初始化

void ListStackInit(ListStack **stack)  //输出型  2018年8月16日 14:35:35  更正
{
    if (((*stack)=(ListStack*)malloc(sizeof(ListStack)))==NULL)
    {
        exit(1);
    }
    (*stack)->next = NULL;
}

//堆栈判断是否为空

int ListStackEmpty(ListStack *stack)
{
    if (stack->next == NULL)
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

//堆栈进栈

int ListStackPush(ListStack *stack, DataType x)
{
    ListStack *pTemp;
    if ((pTemp = (ListStack*)malloc(sizeof(ListStack))) == NULL)
    {
        return 0;
    }
    pTemp->data = x;
    /*pTemp->next = NULL;*/

    pTemp->next = stack->next;
    stack->next = pTemp;
    return 1;
}

//堆栈出栈

int ListStackPop(ListStack *stack, DataType *x)
{
    ListStack *del=stack->next;//赋值
    if (del==NULL)
    {
        return 0;
    }
    
    stack->next = del->next;
    *x = del->data;
    free(del);
    return 1;
}

//堆栈取出栈顶

int ListStackTopPop(ListStack *stack,DataType *n)
{
    ListStack *temp=stack->next;

    if (temp==NULL)
    {
        return 0;
    }
    *n=temp->data;
    return 1;
}

//链表销毁

void ListDestroy(ListStack *stack)
{
    ListStack *pTemp, *del;
    //if ((del = (ListStack*)malloc(sizeof(ListStack))) == NULL)
    //{
    //    return 0;
    //}
    pTemp = stack;
    //pTemp = pTemp->next;   //2018年8月16日 14:35:09   更正
    while (pTemp!=NULL)
    {
        del = pTemp;
        pTemp = pTemp->next;
        free(del); //2018年8月16日 08:59:48  出现中断?
        
        del = NULL;           //2018年8月16日 14:34:56   更正
    }
    /*stack->next = NULL;*/
}
//主函数

int main()
{
    ListStack *head;
    int i;
    DataType m, x;

    ListStackInit(&head);
    for ( i = 0; i < 10; i++)
    {
        if ((ListStackPush(head, i + 1)) == 0)
        {
            printf("插入错误\n");
            getchar();
            return ;
        }
    }
    ListStackTopPop(head, &m);
    printf("栈顶=%d\n",m );
    //for ( i = 0; i < 10; i++)
    while (ListStackEmpty(head)!=0/*head.next!=NULL*/)     //替换for循环在ListStackPop()中出现中断
    {
        if ((ListStackPop(head,&x)==0))
        {
            printf("取出错误\n");
            getchar();
            return;
        }
        else
        {
            printf("%d   ", x);
        }
    }
    ListDestroy(head);
    getchar();
    return 0;
}

 

数据结构 朱战力 习题解答 数据结构 朱战力 习题解答 数据结构 朱战力 习题解答数据结构 朱战力 习题解答数据结构 朱战力 习题解答数据结构 朱战力 习题解答数据结构 朱战力 习题解答数据结构 朱战力 习题解答数据结构 朱战力 习题解答 立即下载

相关推荐

数据结构朱站力版答案

朱战立,第二版(西安电子科技大学出版社)

数据结构c语言版朱站立第五版答案,西安交大朱站立《数据结构——使用C语言》头文件...

西安交大朱站立《数据结构——使用C语言》各种头文件,顺序表、链表、堆栈、串、图等,有待更新,敬请期待!顺序表(SeqList.h)typedef struct{DataType list[MaxSize];int size;} SeqList;void ListInitiate(SeqList *L) //初始化顺序表{L->size=0; //定义初始元素个数}int List...

weixin_29122445的博客 2530

数据结构教程(第5版)课后题参考答案,第四章串

数据结构教程(第5版)课后题参考答案,第四章串,清华大学出版社,李春bao主编

数据结构使用c语言朱战立答案,数据结构使用C语言朱战立第2章课件

数据结构使用C语言朱战立第2章课件 前牙反颌和开颌的原因多由于不良喂养方式和吮指等不良习惯造成,也可因多颗乳磨牙过早缺失,迫使儿童用前牙咀嚼,下颌逐渐前伸移位造成。 typedef struct Node { DataType data; struct Node *next; }SLNode, *LinkList; 前牙反颌和开颌的原因多由于不良喂养方式和吮指等不良习惯造成,也可因多颗乳磨牙过早缺...

weixin_39624094的博客 969

数据结构朱战立讲义

人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及其活动所做的抽象描述。 (2)数据元素:表示一个事物的一组数据。 (3)数据项:构成数据元素的数据。

数据结构课本代码和课后答案

朱战立的数据结构,很多学校都在用这个教程。

数据结构(朱战立版本)

数据结构(朱战力)

chendad的博客 503

数据结构教程(第5版)练习题参考答案.rar

数据结构教程(第5版)练习题参考答案,第1-12章。第1章绪论;第2章线性表;第3章栈和队列;第4章串;第5章递归;第6章数组和广义表;第7章树和二叉树;第8章图;第9章查找;第10章内排序;第11章外排序;第12章文件

目录结构

第0章 C#语言基础。第1章绪论1.1数据结构的基本概念 1.2抽象数据类型1.3算法和算法的时间复杂度1.3.1算法1.3.2算法设计目标1.3.3算法的时间复杂度分析1.4算法的空间复杂度分析1.5C#语言的工具包习题1第2章线性表2.1线性表2.1.1线性表的定义2.1.2线性表抽象数据类型2.2顺序表2.2.1顺序表的存储结构2.2.2顺序表类2.2.3顺序表的效率分析2.2.4顺序表

monkey3的专栏 451

朱战立——数据结构程序(C语言版源代码各章分布清晰).rar

朱战立——数据结构程序(C语言版源代码各章分布清晰).rar,欢迎免费下载。

数据结构第五版源码

最新版数据结构,第五版,课后习题源码,以及书中源码

数据结构教程(第5版)课后题参考答案,第八章图

数据结构教程(第5版)课后题参考答案,第八章图,清华大学出版社,李春葆主编

《数据结构(C++语言描述)》朱战立编著 源码及习题答案

《数据结构(C++语言描述)》朱战立编著 源码及习题答案

《数据结构(C++语言描述)》朱战立编著 配书源码及习题答案

《数据结构(C++语言描述)》朱战立编著 源码及习题答案 全部是配套的

数据结构课件_朱战立

数据结构课件_朱战立 数据结构课件_朱战立

数据结构(第四版)朱站立

一本很错不的数据结构,上面讲的很详细。可以下载下来看看。很不错

数据结构教程(第5版)课后题参考答案第三章

数据结构教程(第5版)课后题参考答案第三章栈和队列,清华大学出版社,李春葆主编

cadence virtuoso 激励信号源

vpulse,vpwl,vsin,vsource信号源介绍

努力学习的IC小白 3万+
上一篇: 二维数组动态分配【数据结构-朱战立】
下一篇: 链式队列【数据结构-朱战立】
蓝莓派Alex
博客等级 码龄15年 147粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值