| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6012 人关注过本帖
标题:有关链表(输入输出数据,并删除一个数据)的问题,head=p1和p1=head的区别 ...
只看楼主 加入收藏
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 28楼 书生牛犊
奥,我发现我说错了。p1=head是把head存储的值(即头指针指向的的结点的地址)赋值给p1的。
2016-09-13 16:23
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 30楼 linlulu001
恩恩,p的值每次重新赋值就解决了。但我要一次性删除其中几个结点要怎样改del函数呢?
2016-09-13 16:48
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:5 
回复 32楼 弟大勿勃
struct student *del(struct student *head,int num)
 {
     struct student *p1,*p2,*temp;
     int flag=0;
     if(head==NULL)
     {
         printf("\nThis list is null!\n");
        return p1;
     }
     p1=head;                                     //为什么这里是p1指向head而不是head指向p1            
loop:     while(p1->num!=num && p1->next!=NULL)               
      {
          p2=p1;                                         //
         p1=p1->next;                                //
     }
      if(p1->num==num)
      {
          if(p1==head)
          {
              head=p1->next;
              temp=p1;
              p1=p1->next;
              free(temp);
          }
          else
          {
          p2->next=p1->next;
          temp=p1;
          p1=p2->next;
          free(temp);
          }
          printf("\nDeleat NO:%d succesed!\n",num);
          n=n-1;
          flag=1;
      }
      if(p1!=NULL)goto loop;
     if(!flag)
     {
         printf("%d not been found!\n",num);
     }
    return head;
 }
 试试这个,我在我的函数体里试了还可以。
2016-09-13 17:47
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 32楼 弟大勿勃
一次性删除几个结点???
能不能举个例子。
2016-09-13 19:27
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 34楼 linlulu001
就是说当程序执行到删除命令时,我同时输入任一个num,这任一个num都同时被删除。
2016-09-13 20:47
弟大勿勃
Rank: 2
等 级:论坛游民
帖 子:186
专家分:59
注 册:2014-4-17
收藏
得分:0 
回复 33楼 ehszt
谢谢额,这样也能行吧,不过会不会占更多内存呢?
我想问一下如果要同时输入多个num并一次性删除这些num怎么实现呢?
2016-09-13 20:54
快速回复:有关链表(输入输出数据,并删除一个数据)的问题,head=p1和p1=head的 ...
数据加载中...
 
   



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

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