| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 340 人关注过本帖
标题:关于建立动态链表的问题
只看楼主 加入收藏
Adm〃h
Rank: 2
等 级:论坛游民
帖 子:26
专家分:18
注 册:2012-3-26
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:4 
关于建立动态链表的问题
代码如下:

#include <stdio.h>
#include <malloc.h>
void First_Open ();
void Certain_Open ();
void Input (struct student *p);
void Output (struct student *p);
void Connection (struct student *pcurrent,struct student *panaddr);
int Judge ();
void Output (struct student *p);
int N=0;
struct student
{
 int num;
 struct student *next;
}*HEAD,*UNKNOWNADDR;
void main()
{
 int n;
 printf("是否开始创建动态链表 y/n :");
 n=Judge ();
 if (!n)
 {
  printf("\n未能创建动态链表\n");
 }
 while (n)
 {
  if (n&&!N)
  {
   First_Open ();
   Input (HEAD);
   N++;
  }
  else if (n&&N)
  {
   Certain_Open ();
   Input (UNKNOWNADDR);
   Connection (HEAD,UNKNOWNADDR);
  }
  printf("是否继续创建? y/n :");
  n=Judge ();
  if (!n)
  {
   printf("创建结束\n");
   break;
  }
 }
 Output (HEAD);
}
int Judge ()
{
 char temp;
 scanf("%c",&temp);
 if (temp=='y' || temp=='Y')
 {
  return 1;
 }
 else
 {
  return 0;
 }
}
void First_Open ()
{
 HEAD=(struct student*)malloc(sizeof (struct student));
}
void Certain_Open ()
{
 UNKNOWNADDR=(struct student*)malloc(sizeof (struct student));
}
void Input (struct student *p)
{
 printf("请输入学号:");
 scanf("%d",&p->num);
 getchar ();
 p->next=NULL;
}
void Connection (struct student *pcurrent,struct student *panaddr)
{
 struct student *pnext;
 while (pcurrent!=NULL)
 {
  pnext=pcurrent->next;
  if (panaddr->num<pcurrent->num && pcurrent==HEAD)
  {
   panaddr->next=HEAD;
   HEAD=panaddr;
   break;
  }
  else if (panaddr->num>pcurrent->num && panaddr->num<pnext->num)
  {
   pcurrent->next=panaddr;
   panaddr->next=pnext;
   break;
  }
  else if (pcurrent->next == NULL)
  {
   pcurrent->next=panaddr;
  }
  pcurrent=pcurrent->next;
 }
}
void Output (struct student *p)
{
 while (p!=NULL)
 {
  printf("学号:");
  printf("%d ",p->num);
  p=p->next;
  printf("\n");
 }
}

 关于插入功能,有点问题,为什么每次当输入完第一个结点后,若继续创建,不能输入大于当前链表内的任意结点。错误提示:access violation (访问冲突)。
搜索更多相关主题的帖子: void include 动态 
2012-12-19 18:24
w527705090
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:11
帖 子:441
专家分:1882
注 册:2011-6-28
收藏
得分:5 
不懂,帮顶好了

有心者,千方百计;无心者,千难万难。
2012-12-20 10:56
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:5 
是不是访问指针访问问题?

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-12-21 21:21
yaofulan
Rank: 1
等 级:新手上路
帖 子:4
专家分:5
注 册:2012-12-21
收藏
得分:5 
太复杂,解决不了!
2012-12-22 13:17
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:5 
懒得看,帮顶

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-12-22 13:45
快速回复:关于建立动态链表的问题
数据加载中...
 
   



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

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