CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

谁能帮我看一下这个链表程序的毛病在哪里

楼主kongqz(欢乐时光)2003-11-04 17:56:31 在 C/C++ / C语言 提问

我这个题目是对带头链表进行基本操作  
  但是我的输出有很大问题  
  哪位达人帮我看看  
  我的程序编译通过  
  就是结果不是想象的  
  我是每进行一次基本操作就显示一下链表里的数据  
  请大家指教  
   
  #include<stdio.h>  
  struct   NODE  
  {   int   data;  
      struct   NODE   *next;  
  };  
  struct   NODE   *head,*tail,*work,*new;  
  set_null()  
  {head=(struct   NODE   *)malloc(sizeof(struct   NODE));  
    head->next=NULL;  
    tail=head;  
  }  
   
  /*struct   NODE   *locate(data)  
  int   data;  
  {   work=head;  
      while(work->data!=data)  
        work=work->next;  
      if(work->data==data)  
        return(work);  
      else  
      return(NULL);  
  }*/  
   
  Insert(data,predata)  
  int   data,predata;  
  {struct   NODE   *work;  
    work=head->next;  
    while(work->data!=predata   &&   work!=NULL)  
    work=work->next;  
    new=(struct   NODE*)malloc(sizeof(struct   NODE));  
    new->data=data;  
    if(work==NULL)  
    {       new->next=NULL;  
            work->next=new;  
            tail=new;  
      }  
    else  
    {   new->next=work->next;  
        work->next=new;}  
  }  
   
  delete(data)  
  int   data;  
  {  
    struct   NODE   *work1;  
    work=head;  
    while(work->data!=data   &&   work!=NULL)  
        work=work->next;  
          work1=head;  
          while(work1->next!=work)  
            work1=work1->next;  
            work1->next=work->next;  
            free(work);  
            if(work==tail)  
            {  
              tail=work1;  
            }  
   
    }  
  display()  
  {  
    struct   NODE   *p;  
    p=head->next;  
    do  
      {  
        p=p->next;  
        printf("\n%d",p->data);  
      }while(p->next!=NULL);  
  }  
  main()  
  {  
    set_null()   ;  
    Insert(5,2);  
    display();  
    Insert(7,5);  
    display();  
    Insert(8,5);  
    display();  
    delete(7);  
    display();  
    getch();  
  }  
   
   
   
  问题点数:40、回复次数:8Top

1 楼carbon107(&lt;软件开发思想.h&gt;)回复于 2003-11-04 18:57:39 得分 2

你的程序能编译通过吗,好像不是啊Top

2 楼carbon107(&lt;软件开发思想.h&gt;)回复于 2003-11-04 19:00:52 得分 2

错误多多啊,要不我给你做一个啊,说真的你的程序有问题,有什么问题找我吧  
  qq:373965Top

3 楼iceandfire(【咖啡沫】)回复于 2003-11-04 19:23:55 得分 2

本来想帮你改改,可从结构上看就很混乱,还不如给你写一个呢~~~哎~~~要从基本功练起啊Top

4 楼yuanzhanliu(远湛)回复于 2003-11-04 19:35:04 得分 2

new   就不行啊Top

5 楼kongqz(欢乐时光)回复于 2003-11-04 22:14:52 得分 0

编译确实通过了  
  但是结果就是显示了插入后的结果  
  删不掉指定数据  
  并且我单步追踪都可以通过  
  唉Top

6 楼teddyzhai(我是猪)回复于 2003-11-04 23:07:59 得分 2

好象不能编译吧!  
  我觉得头文件都不对啊!!有malloc应该有<STDLIB.H>啊  
  !!!Top

7 楼hf811124(疯子)回复于 2003-11-05 09:16:50 得分 12

/*struct   NODE   *locate(data)  
  int   data;  
  {   work=head;               head     没有定义啊,是什么啊  
      while(work->data!=data)  
        work=work->next;  
      if(work->data==data)  
        return(work);  
      else  
      return(NULL);  
  }*/  
  Top

8 楼Angeleque(小烟)回复于 2003-11-05 10:07:01 得分 18

int   Delete(int   data)  
  {struct   NODE   *pTop,*pLast;  
    int   Ok;  
   
    Ok   =   FALSE;  
    pTop   =head;  
    pLast   =   head;  
    while(pTop)  
      {if(data==pTop->data)  
          {Ok   =   TRUE;  
            break;  
          }  
        pLast   =   pTop;  
        pTop   =   pTop->Next;  
    }  
    if   (Ok)  
      {if(pTop   ==   head)  
          pHead   =   head->Next;  
        else   if(pTop)  
              pLast->Next   =   pTop->Next;  
        else   if(pTop==NULL)  
              pLast->Next   =   NULL;  
   
        if(pTop)   free(pTop);  
      }  
    else  
      return   FALSE;  
   
    return   TRUE;  
  }  
  Top

相关问题

  • 帮我看一下程序?
  • 我的程序有问题,好象是传值调用有毛病,看一下,谢谢!!!
  • 帮我看一下那出毛病了
  • 请帮忙看一下这段程序
  • 简单程序,帮忙看一下!
  • 帮我看一下这个程序.
  • 帮我看一下这个程序.
  • 帮我看一下这个程序
  • 请看一下如下的程序。
  • 谁给我看一下程序?

关键词

  • null
  • ptop
  • work
  • plast
  • predata
  • next
  • struct node
  • head
  • tail
  • malloc

得分解答快速导航

  • 帖主:kongqz
  • carbon107
  • carbon107
  • iceandfire
  • yuanzhanliu
  • teddyzhai
  • hf811124
  • Angeleque

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo