栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言:链栈的基本操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言:链栈的基本操作

关注作者:Aqu-蓝空



描述

利用链表对栈的将实现基本操作:

  1. 入栈
  2. 出栈
  3. 打印

代码
#include
#include
#include
#define SIZE sizeof(StackNode)
typedef struct StackNode
{
 int data;
 struct LNode *next;
}StackNode,*linkstack;
//功能:入栈操作!
void push(linkstack s,int x)
{
    linkstack p;
    p=(linkstack)malloc(SIZE);
    p->data=x;
    p->next=s->next;
    s->next=p;
    printf("进栈成功!n");
    printf("栈中的元素:n");
}
//功能:出栈操作!
void pop(linkstack s,int x)
{
    linkstack p;
    if(s->next==NULL)
        printf("栈为空,无法进行出栈操作!n");
    else
    {
        p=s->next;
        x=p->data;
        s->next=p->next;
        free(p);
        printf("出栈成功!n");
        printf("出栈的元素为%d。栈内的元素为n",x);
    }
}
//功能:打印栈中的元素!
void outputstack(linkstack s)
{
    linkstack p;
    p=s->next;
    while(p)
    {
        printf("%d",p->data);
        p=p->next;
        printf("n");
    }
}
//主函数
void main()
{
    linkstack s;
    int x,n;
    s=(linkstack)malloc(SIZE);
    s->next=NULL;
    printf("链栈的功能操作目录:n");
    printf("------------------n");
    printf("1.进栈 2.出栈 0.退出操作!n");
    while(1)
    {
        printf("n");
        printf("请选择功能操作(该选择功能如果输入别的数字,程序仍然会继续执行该语句!):");
        scanf("%d",&n);
        switch(n)
        {
             case 1:
                 printf("请输入进栈的元素:");
                 scanf("%d",&x);
                 push(s,x);
                 outputstack(s);
                 break;
             case 2:
                 pop(s,x);
                 outputstack(s);
                 break;
             case 0:
                exit(0);
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311987.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号