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

数据结构在进栈和出栈的时候有错!!帮忙改一下

l3315534 发布于 2010-04-26 19:39, 484 次点击
// Stack.cpp : Defines the entry point for the console application.
//
//头文件包含区
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>

//数据类型定义
struct Node{
    int data;
    Node* next;
};

struct LStack{
    Node* top;
    int length;
};

//操作函数定义
void InitLstack(LStack &ls)
{
    ls.top= 0;
    ls.length = 0;
}

//入栈操作
void PushLstack(LStack &ls, int e)
{   
    Node s;
    s.data = e;
    s.next = 0;

    s.next = ls.top;
    ls.top = &s;
    ls.length++;
}

void PopLstack(LStack &ls, int &e)
{
    if(ls.length<=0)
        return;
    e = ls.top->data;
    Node * p;
    p = ls.top;
    ls.top = ls.top->next;
    ls.length--;
    return;
}

void prinfLstack1(LStack lss)
{
    Node* p = lss.top;
    while(p)
    {
        printf("%d ",p->data);
        p = p->next;
    }
}

void prinfLstack(LStack lss)
{
    int e;
    while(lss.length)
    {
        PopLstack(lss,e);
        printf("%d  ",e);
    }
}

//主函数试验区
int main(int argc, char* argv[])
{
    int k=5;
    LStack lss;
    InitLstack(lss);
    while(k!=-1)
    {
        scanf("%d",&k);
        PushLstack(lss,k);
    }
    prinfLstack1(lss);
    return 0;
}
2 回复
#2
寒风中的细雨2010-04-27 07:15
在使用指针的时候 要记得初始化
#3
qq88011032010-04-27 08:25
还有最好使用用户自定义  typedef
1