阿毛要变强 2021-04-23 16:30 采纳率: 33.3%
浏览 328

链栈的基本操作之取栈顶元素的值

#include<stdio.h>
#include<malloc.h>
typedef int datatype;
typedef struct Node
{
    datatype data;
    struct Node *next;
}Node;
Node *top=(Node *)malloc(sizeof(Node));
void build(Node *top)
{
    top=NULL;
}
void push(Node *top,datatype x)
{
    Node *s=(Node *)malloc(sizeof(Node));
    s->data=x;
    s->next=top;
    top=s;
}

int gettop(Node *top,datatype *ptr)
{
    if(top==NULL)
    {
        printf("栈顶无元素\n");
        return 0;
    }
    *ptr=top->data ;
    return 1;
}
int main(){
    datatype x;
    build(top);
    printf("现将5和99进行入栈\n");
    push(top,5);
    push(top,99);
    if(gettop(top,&x)==1)
    printf("当前栈顶元素是%d\n",x); 

    return 0;
}

为什么最后取不出来栈顶元素呢,取出来的是一个很大的数,恳请大佬为在线小白指点一下

学习不易,小白叹气

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2021-04-23 17:23
    关注

    Node *top=(Node *)malloc(sizeof(Node));
    void build(Node *top)
    {
        top=NULL;
    }

     

     build(top);

    你这是怎么个意思呢?有点搞不清楚啊。

    ==========

    int main(){
        datatype x;
        Node *top=(Node *)malloc(sizeof(Node));

    printf("现将5和99进行入栈\n");
        push(top,5);
        push(top,99);
        if(gettop(top,&x)==1)
        printf("当前栈顶元素是%d\n",x); 

        return 0;
    }

    评论

报告相同问题?

悬赏问题

  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥20 和学习数据的传参方式,选择正确的传参方式有关
  • ¥15 这是网络安全里面的poem code
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路