| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1284 人关注过本帖
标题:单链表删除函数出现了问题,高手看看
只看楼主 加入收藏
xiaofkg
Rank: 1
等 级:新手上路
威 望:1
帖 子:77
专家分:0
注 册:2007-9-17
收藏
 问题点数:0 回复次数:7 
单链表删除函数出现了问题,高手看看
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#define NULL 0
typedef struct lode
{int data;
 struct lode *next;
}lode,*linklist;
createlode(linklist p,int n)
{ int i;

 linklist p1;
 p1=p;

 for(i=0;i<n;i++)
    {insertlode(p1,i);
            
    }
}
insertlode(linklist p,int n)
{ linklist s;
   int j=0;


  while(j<n)
 {p=p->next;
  j++;  
 }

 s=(linklist)malloc(sizeof(struct lode));
 scanf("%d",&s->data);
 
 
 s->next=p->next;
 p->next=s;
 
}
dellode(linklist p,int n)//问题函数。
{int j;
 linklist s;
 linklist pp=p->next;
 while(pp->data!=n)
  {pp=pp->next;
  }
  s=pp;
  s=s->next;
  free(pp);


}
showlode(linklist p)
{linklist pp=p->next;
 printf("the circular linked list is:\n");
 while(pp!=p)
  { printf("%d ",pp->data);
   pp=pp->next;
   }
 printf("\n");

}
main()
{linklist p;
  int n;
 p=(linklist)malloc(sizeof(struct lode));
 p->next=p;

 printf("input the number of the circular linked list :");
 scanf("%d",&n);
 createlode(p,n);
 showlode(p);
 printf("input the number of what you want to del lode:\n");
 scanf("%d",&n);
 dellode(p,n);
 showlode(p);
 getch();

}
搜索更多相关主题的帖子: 单链 函数 删除 
2007-12-20 13:24
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
creatlode函数中用到了insertlode,
应该把insertlode放到前面,
还有就是getch();的函数库为<conio.h>

2007-12-20 14:08
xiaofkg
Rank: 1
等 级:新手上路
威 望:1
帖 子:77
专家分:0
注 册:2007-9-17
收藏
得分:0 
还是不行,诸位再看看,谢谢了。
2007-12-20 16:42
giant611
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-25
收藏
得分:0 
getch()的函数库为<conio.h>?是"stdio.h"吧
2007-12-20 20:55
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#define NULL 0
#include"conio.h"
typedef struct lode
{
    int data;
    struct lode *next;
}lode,*linklist;

void insertlode(linklist p,int n)
{
    linklist s;
    int j=0;
    while(j<n)
    {
        p=p->next;
        j++;  
    }

    s=(linklist)malloc(sizeof(struct lode));
    scanf("%d",&s->data);
    s->next=p->next;
    p->next=s;
}

void createlode(linklist p,int n)
{ int i;
  linklist p1;
  p1=p;
  for(i=0;i<n;i++)
    {
      insertlode(p1,i);
    }
}


void dellode(linklist p,int n)//问题函数。
{
//    int j;
    linklist s;
    linklist pp=p;
    while(pp->data!=n&&pp->next!=NULL)
    {    s=pp;
        pp=pp->next;
        
    }
    if(pp->data==n)
    {
      s->next=pp->next;
      free(pp);
    }
}

void showlode(linklist p)
{
    linklist pp=p->next;
    printf("the circular linked list is:\n");
    while(pp!=p)
    {
        printf("%d ",pp->data);
        pp=pp->next;
    }
 printf("\n");

}

main()
{
    linklist p;
    int n1;
    int n2;
    p=(linklist)malloc(sizeof(struct lode));
    p->next=p;
    printf("请输入要建立的链表的结点个数 :");
    scanf("%d",&n1);
    createlode(p,n1);
    showlode(p);
    printf("请输入要删除的结点数值:\n");
    scanf("%d",&n2);
    dellode(p,n2);
    showlode(p);
    getch();

}
可以运行了,你看一下,指针的用法仔细看看啊,应该不难
2007-12-20 21:57
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
#include "stdlib.h"
#include "string.h"
#include "stdio.h"
#define NULL 0
#include"conio.h"
typedef struct lode
{
    int data;
    struct lode *next;
}lode,*linklist;

void insertlode(linklist p,int n)
{
    linklist s;
    int j=0;
    while(j<n)
    {
        p=p->next;
        j++;  
    }

    s=(linklist)malloc(sizeof(struct lode));
    scanf("%d",&s->data);
    s->next=p->next;
    p->next=s;
}

void createlode(linklist p,int n)
{ int i;
  linklist p1;
  p1=p;
  for(i=0;i<n;i++)
    {
      insertlode(p1,i);
    }
}


void dellode(linklist p,int n)//问题函数。
{
//    int j;
    linklist s;
    linklist pp=p;
    while(pp->data!=n&&pp->next!=NULL)
    {    s=pp;
        pp=pp->next;
        
    }
    if(pp->data==n)
    {
      s->next=pp->next;
      free(pp);
    }
}

void showlode(linklist p)
{
    linklist pp=p->next;
    printf("the circular linked list is:\n");
    while(pp!=p)
    {
        printf("%d ",pp->data);
        pp=pp->next;
    }
printf("\n");

}

main()
{
    linklist p;
    int n1;
    int n2;
    p=(linklist)malloc(sizeof(struct lode));
    p->next=p;
    printf("请输入要建立的链表的结点个数 :");
    scanf("%d",&n1);
    createlode(p,n1);
    showlode(p);
    printf("请输入要删除的结点数值:\n");
    scanf("%d",&n2);
    dellode(p,n2);
    showlode(p);
    getch();

}
刚才的程序有点问题,现在应该没什么问题了.太急了没太在意.
2007-12-20 22:43
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
原帖由 [bold][underline]giant611[/underline][/bold] 于 2007-12-20 20:55 发表 [url=http://bbs.][/url]
getch()的函数库为?是"stdio.h"吧


不知道为什么,大家都爱弄混这几个东西: getch  getche  getchar

2007-12-20 22:52
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h.h>
#include <string.h>
#include <conio.h>

用的 TC 吧,其他很多编译器都必须包含头文件,否则无法编译。

<> 包含库中的头文件,一般是编译器安装目录的 include 文件夹中的头文件。
""  包含当前目录中的文件 或 工程中的文件。

还有老谭的书也不好。

—>〉Sun〈<—
2007-12-21 00:37
快速回复:单链表删除函数出现了问题,高手看看
数据加载中...
 
   



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

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