| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 362 人关注过本帖
标题:C语言数据结构问题,求解
只看楼主 加入收藏
qq1761442432
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2015-1-13
收藏
 问题点数:0 回复次数:2 
C语言数据结构问题,求解
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
typedef struct node
{
    int data; // 数据域
    struct stack *pnext; //指针域
}NODE, *PNODE;
typedef struct stack
{
    PNODE top; // 栈的顶部
    PNODE bottom; // 栈的底部
} STACK, *PSTACK;
/* * * * * * * 函数声明* * * * * * * */
void init(PSTACK ps);
// 初始化函数
void push(PSTACK ps,int val);
// 压栈
void traversal(STACK ps);
// 遍历输出
bool empty(PSTACK ps);
// 判断是否为空
int main ( void )
{
    STACK ps; // 创建
    init (&ps);
    push (&ps,6);
    push (&ps,8);
    traversal(&ps);
    return 0;
}
void init (PSTACK ps)
{
    ps->bottom=(PNODE)malloc(sizeof (NODE));
    // 为栈的底部分配字节
    if (ps->bottom == NULL)
    {
        printf("分配失败!\n");
        exit (-1);
    }
    ps->top=ps->bottom;
    //栈的底部和顶部指向同一空间
    ps->bottom->pnext=NULL;
    //可改为ps->top
    //栈的底部指针域为空
}
void push(PSTACK ps,int val)
{
    PNODE pnew=(PNODE)malloc(sizeof (NODE));
    // 开辟新字节
    if (pnew==NULL)
    {
        printf("分配失败!\n");
        exit(-1);
    }
    else
    {
       pnew->data=val;
       // 将val的值赋给pnew的数据域
   pnew->pnext=ps->top->pnext;
       // 连接top和pnew
       ps->top=pnew;
       // 连接pnew和空节点
    }
    return;
}
bool empty(PSTACK ps)
{
    // 如果顶部等于底部,说明为空
    if (ps->top==ps->bottom)
    return true;
    else
    return false;
}
void traversal(PSTACK ps)
{
    PNODE p= ps->top;
    while (p !=ps->bottom)
    {
        // 输出top的数据
        printf("%d   ",p->data);
        p=p->pnext;
    }
    printf("\n");
    return;
}

不知道哪里出错了?求指出?
搜索更多相关主题的帖子: include bottom C语言 
2015-05-15 22:09
qq1761442432
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2015-1-13
收藏
得分:0 
???
2015-05-15 22:19
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
# include <stdio.h>
# include <stdlib.h>
# include <malloc.h>
typedef struct node
{
    int data; // 数据域
    struct node *pnext; //指针域
}NODE, *PNODE;
typedef struct stack
{
    PNODE top; // 栈的顶部
    PNODE bottom; // 栈的底部
} STACK, *PSTACK;
/* * * * * * * 函数声明* * * * * * * */
void init(PSTACK ps);
// 初始化函数
void push(PSTACK ps,int val);
// 压栈
void traversal(PSTACK ps);
// 遍历输出
bool empty(PSTACK ps);
// 判断是否为空
int main ( void )
{
    STACK ps; // 创建
    init (&ps);
    push (&ps,6);
    push (&ps,8);
    traversal(&ps);
    return 0;
}
void init (PSTACK ps)
{
    ps->bottom=(PNODE)malloc(sizeof (NODE));
    // 为栈的底部分配字节
    if (ps->bottom == NULL)
    {
        printf("分配失败!\n");
        exit (-1);
    }
    ps->top=ps->bottom;
    //栈的底部和顶部指向同一空间
    ps->bottom->pnext=NULL;
    //可改为ps->top
    //栈的底部指针域为空
}
void push(PSTACK ps,int val)
{
    PNODE pnew=(PNODE)malloc(sizeof (NODE));
    // 开辟新字节
    if (pnew==NULL)
    {
        printf("分配失败!\n");
        exit(-1);
    }
    else
    {
       pnew->data=val;
       // 将val的值赋给pnew的数据域
   pnew->pnext=ps->top->pnext;
       // 连接top和pnew
       ps->top=pnew;
       // 连接pnew和空节点
    }
    return;
}
bool empty(PSTACK ps)
{
    // 如果顶部等于底部,说明为空
    if (ps->top==ps->bottom)
    return true;
    else
    return false;
}
void traversal(PSTACK ps)
{
    PNODE p= ps->top;
    while (p !=ps->bottom)
    {
        // 输出top的数据
        printf("%d   ",p->data);
        p=p->pnext;
    }
    printf("\n");
    return;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-05-15 22:36
快速回复:C语言数据结构问题,求解
数据加载中...
 
   



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

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