标题:链栈的简单问题 求解
只看楼主
堃周
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2018-4-6
结帖率:83.33%
 问题点数:0 回复次数:0 
链栈的简单问题 求解
开始已经解决了InitLinkStack中top的有效操作
但是我还有一个问题 就是既然我对top的操作无效
那以同样的方式 为什么对Push和Pop的操作有效
#include <stdio.h>
#include <stdlib.h>
typedef int StackElemType;
typedef struct node
{
    StackElemType data;
    struct node *next;
}LinkStackNode;
typedef LinkStackNode *LinkStack;
void InitLinkStack(LinkStack* top);
void Push(LinkStack top,StackElemType x);
int Pop(LinkStack top);
int main()
{
    LinkStack top;
    InitLinkStack(&top);
    int i;
    for(i=0;i<10;i++)
        Push(top,i*10);
    for(i=0;i<10;i++)
        printf("%d ",Pop(top));
        //printf(" ");//这里的空格不管用   
            
    return 0;
}
void InitLinkStack(LinkStack* top)
{
    *top=(LinkStack)malloc(sizeof(LinkStack));
    (*top)->next=NULL;

}
void Push(LinkStack top,StackElemType x)
{
    LinkStackNode *p;
    p=(LinkStackNode*)malloc(sizeof(LinkStackNode));
    p->data=x;
    p->next=top->next;
    top->next=p;
}
int Pop(LinkStack top)
{
    if(top->next==NULL)
    {
        printf("表为空\n");
        return 0;
    }
    int a;
    LinkStackNode *temp;
    temp=top->next;
    top->next=temp->next;
    a=temp->data;
    free(temp);
    return a;
}   
搜索更多相关主题的帖子: top Push int next void 
2018-04-22 12:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486278-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.176731 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved