| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 269 人关注过本帖
标题:求解啊,为什么链栈停不了啊,头疼啊
只看楼主 加入收藏
hy247767221
Rank: 2
来 自:襄樊
等 级:论坛游民
帖 子:41
专家分:22
注 册:2011-7-27
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:5 
求解啊,为什么链栈停不了啊,头疼啊
#include<stdio.h>
#include<stdlib.h>

typedef struct ELEMENT
{
    char ch;
}ELEMENT;

typedef struct NODE
{
    ELEMENT data;
    struct NODE *next;
}NODE;

void free_space(NODE *p);

int main()
{
    ELEMENT string;
    NODE *stack = NULL,*p = NULL;

    while(1)
    {
        string.ch = getchar();
        if(!string.ch)
            break;
        p = (NODE *)malloc(sizeof(struct NODE));
        if(p == NULL)
        {
            printf("The space can not be assigned!\n");
            return 0;
        }
        p->data = string;
        p->next = stack;
        stack = p;
    }

    while(p)
    {
        putchar(p->data.ch);
        p = p->next;
    }

    putchar(10);

    free_space(p);

    return 0;
}
void free_space(NODE *p)
{
    NODE *q;
    while(q)
    {
        q = p->next;
        free(p);
        p = q;
    }
    free(q);
}
搜索更多相关主题的帖子: return 
2011-07-27 15:06
hy247767221
Rank: 2
来 自:襄樊
等 级:论坛游民
帖 子:41
专家分:22
注 册:2011-7-27
收藏
得分:0 
拜托啦,各位高手们····
2011-07-27 15:06
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>

typedef struct NODE
{
    char data;
    struct NODE *next;
}NODE;

void free_space(NODE *p)//直接递归释放就可以了
{
    if(p->next)
        free_space(p->next);
    free(p);
} 

int main()
{
    char string;
    NODE *head = NULL,*p = NULL;//链表都要有头结点 和头指针
    head = (NODE *)malloc(sizeof(struct NODE));
    head->next = NULL;
    while(EOF != scanf("%c",&string))
    {
        getchar();
        p = (NODE *)malloc(sizeof(struct NODE));//倒叙插入法  栈特性
        p->data = string;
        p->next = NULL;
        p->next = head->next;
        head->next = p;
    }

    while(p)
    {
        putchar(p->data);
        p = p->next;
    }

    putchar(10);

    free_space(p);

    return 0;
}

                                         
===========深入<----------------->浅出============
2011-07-27 15:38
hy247767221
Rank: 2
来 自:襄樊
等 级:论坛游民
帖 子:41
专家分:22
注 册:2011-7-27
收藏
得分:0 
回复 3楼 laoyang103
为什么在VC++上运行还是不能倒叙输出呢,而且好像输出结束不了啊,不知道怎么办??
谢谢你帮我的哪个释放内存函数
在帮帮忙啊·
2011-07-27 15:47
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
需要按两次Ctrl+z因为是 字符输入  具体为什么我也不太清楚

反正整数的一次EOF就可以

                                         
===========深入<----------------->浅出============
2011-07-28 08:25
hy247767221
Rank: 2
来 自:襄樊
等 级:论坛游民
帖 子:41
专家分:22
注 册:2011-7-27
收藏
得分:0 
回复 5楼 laoyang103
哈哈··谢谢你拉,对我有帮助
2011-07-28 10:24
快速回复:求解啊,为什么链栈停不了啊,头疼啊
数据加载中...
 
   



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

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