注册 登录
编程论坛 数据结构与算法

遍历输出问题,请大神帮帮忙。谢谢!

makoki 发布于 2020-04-16 20:44, 3335 次点击
# include <stdio.h>
# include <malloc.h>
# include <stdlib.h>

typedef struct Node
{
    int data;
    struct Node * pNext;
}NODE, * PNODE;

typedef struct Stack
{
    PNODE pTop;
    PNODE pBottom;
}STACK, * PSTACK;

void init(PSTACK);
void push(PSTACK, int );
void traverse(PSTACK);

int main()
{
    STACK S;
    int Val;

    init (&S);
   
    push(&S, 1);
    push(&S, 2);
    push(&S, 3);
    push(&S, 4);
    push(&S, 5);
    push(&S, 6);
   
    traverse(&S);

    return 0;
}

void init(PSTACK pS)
{
    pS->pTop = (PNODE)malloc(sizeof(NODE));
    if(NULL == pS->pTop)
    {
        printf("动态内存分配失败");
        exit(-1);
    }
    else
    {
        pS->pBottom = pS->pTop;
        pS->pTop->pNext = NULL;

    }
}

void push(PSTACK pS, int val)
{
    PNODE pNew = (PNODE)(sizeof(NODE));
    pNew->data = val;
    pNew->pNext = pS->pTop;
    pS->pTop = pNew;

    return;
}

void traverse(PSTACK pS)
{
    PNODE p = pS->pTop;

    while (p != pS->pBottom)
    {
        printf("%d ", p->data);
        p = p->pNext;
    }
    printf("\n");

    return;
}

没有报错,但是却不能输出,是什么问题呢?
2 回复
#2
wmf20142020-04-16 21:04
void push(PSTACK pS, int val)
{
    PNODE pNew = (PNODE)(sizeof(NODE));    //???malloc呢?
#3
makoki2020-04-16 22:00
回复 2楼 wmf2014
额  谢谢!汗
1