| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 673 人关注过本帖
标题:有关单链表的销毁操作,有点问题,求帮助?
只看楼主 加入收藏
zc1992312
Rank: 2
等 级:论坛游民
帖 子:43
专家分:12
注 册:2013-3-20
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:4 
有关单链表的销毁操作,有点问题,求帮助?
#include <stdio.h>
#include <stdlib.h>

#define TURE 1
#define FALSE 0
#define Max 20
typedef struct                    
{
     float coef;                    /*系数*/
    int expn;                     /*指数*/
}ElemType;

typedef struct LNode                 
{
    ElemType data;                    
    struct LNode *pNext;         
}LNode, *Ploynomial;

int InitList(Ploynomial pList)
{
     pList = (Ploynomial ) malloc (sizeof (LNode));                /*创造头节点*/
    pList -> pNext = NULL;
    pList -> data.coef = 0.0;
    pList -> data.expn = 0;
    return TURE;
}

int DestroyList(Ploynomial pList)
{
     Ploynomial p = pList, q = p -> pNext;
    while (q != NULL)
    {
           free(p);
          p = q;
          q = p -> pNext;      
    }
    free(p);     
    return TURE;
}

main()
{
       Ploynomial List;
       printf ("...\n");
      InitList(List);
      DestroyList(List);
      
      system ("pause");      
}
运行结构。。
多项式运行环境.exe已停止工作
搜索更多相关主题的帖子: include 
2013-10-11 23:06
木头心
Rank: 2
等 级:论坛游民
帖 子:19
专家分:35
注 册:2013-4-17
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <stdlib.h>

#define TURE 1
#define FALSE 0
#define Max 20
typedef struct                    
{
     float coef;                    /*系数*/
    int expn;                     /*指数*/
}ElemType;

typedef struct LNode                 
{
    ElemType data;                    
    struct LNode *pNext;         
}LNode, *Ploynomial;

int InitList(Ploynomial &pList)//加& pList在调用时才会在函数中变化,发生改变
{
     pList = (Ploynomial ) malloc (sizeof (LNode));                /*创造头节点*/
    pList -> pNext = NULL;
    pList -> data.coef = 0.0;
    pList -> data.expn = 0;
    return TURE;
}

int DestroyList(Ploynomial &pList)//这里也一样
{
     Ploynomial p = pList, q = p -> pNext;
    while (q != NULL)
    {
          free(p);
          p = q;
          q = p -> pNext;       
    }
    free(p);     
    return TURE;
} 

int main()//
{
       Ploynomial List;
       printf ("...\n");
      InitList(List);
      DestroyList(List);
      
      system ("pause");      
      return 0;//
}
//你的里面也没存数,只有一个表头。我是这样想的,你看看吧。欢迎批评
2013-10-11 23:36
zc1992312
Rank: 2
等 级:论坛游民
帖 子:43
专家分:12
注 册:2013-3-20
收藏
得分:0 
回复 2楼 木头心
Ploynomial pList   就相当于 LNode * pList吧!!
  那你在给pList 前面加个&  是不是双重指针了  
2013-10-11 23:43
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:6 
回复 3楼 zc1992312
指针的引用,主要是为了传递的是指针的地址而不是指针值

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-12 10:10
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <stdlib.h>
#define TURE 1
#define FALSE 0
#define Max 20
typedef struct                  

 {
      float coef;                    /*系数*/
     int expn;                     /*指数*/

 }ElemType;
typedef struct LNode               

 {
     ElemType data;                  
     struct LNode *pNext;       

 }LNode, *Ploynomial;
int InitList(Ploynomial pList)//要么外面分配好的内存传进来,要么里面分配好的内存用返回值把指针返回去,外面穿指针,里面再给它分配内存,毫无意义
{
     
     pList -> pNext = NULL;
     pList -> data.coef = 0.0;
     pList -> data.expn = 0;
     return TURE;

 }
int DestroyList(Ploynomial pList)//从最后一个结点开始往前释放
{
     Ploynomial p = pList, q = p -> pNext;
     while ( p != NULL)
     {
            if (p->pNext != NULL){
                     p = p->pNext;
                    continue;
            }
           free(p);
           p = pList;     
     }
    
     return TURE;

 }

int main()
{
        Ploynomial List;
        List = (Ploynomial ) malloc (sizeof (LNode));                /*创造头节点*/
        printf ("...\n");
       InitList(List);
       DestroyList(List);
     
       system ("pause");    
       return 0;
}
没有在机子上跑,小改下,不知道有木有错误,谅解!

好好学习,天天想上
2013-10-13 00:07
快速回复:有关单链表的销毁操作,有点问题,求帮助?
数据加载中...
 
   



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

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