| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1034 人关注过本帖
标题:为什么输出时多个0
只看楼主 加入收藏
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
结帖率:87.5%
收藏
 问题点数:0 回复次数:8 
为什么输出时多个0
我建了一个空链表
int creat (*Node temp)
{
 head=(Node *)malloc(sizeof(Node));
 if(!head)
 {"malloc head NULL"}
 head->next=NULL;
}
然后在链表中插入了几个数,
输出时总是多个零。
哪个高手知道这是怎么回事啊
搜索更多相关主题的帖子: 输出 
2009-11-08 21:22
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
就没有人会么?????
2009-11-08 21:35
黑夜的黑
Rank: 1
等 级:新手上路
帖 子:35
专家分:5
注 册:2008-3-31
收藏
得分:0 
把源代码全贴出来看看撒
2009-11-08 21:37
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct node
{
  int data;
  struct node *link;
 }
int creat()
int insertElement(Node **head,int value);
int printlist(Node *temp);
Node *head;
int main(void)
{
 creat();
 printf("insert 34 %\n",insertElement(&head,34));
 printlist(head);
}
 int creat()
{
 head=(Node *)malloc(sizeof(Node));
 if(!head)
{
  printf("errer");
  exit(-2);
  
}
}
int insertElement(Node **head,int value)
{
 Node *p,*q;
 if(*head==NULL) {return(-2);}
 p=*head;
while(p->data!value&&p->link!=NULL))
{
 q=p;p=p->link;
 }
  if(value==p->data)
 {
  if(p=*head) *head=p->link;
  else q=->link=p->link;
}
 else value=-1;
 return(value);

}

麻烦大家看看
2009-11-08 22:25
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
int insertElement(Node **head,int value)
{
 Node *p,*q;
 Node *new_node;
 p=*head;
 q=NULL;
 if(value<0){value=-4;}
else
{
 while(p!=NULL&&p->data>value)
{
 q=p;
 p=p->link;
}
new_node=(Node*)malloc(sizeof(Node));
if(!new_node)
{
 printf("malloc new_node error");
 exit(-2);
}
 if(p->data==value){value=-1;}
 else
{
 new_node->data==value;
 new_node->link=p;
 if(!q)
 {
  *head=new_node;
 }
 else
 {
  q->link=new_node;
}
}
}
return(value);
}

insert函数贴错了 是这个
2009-11-08 23:20
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
没人会么
2009-11-09 00:13
lansong
Rank: 4
等 级:业余侠客
帖 子:79
专家分:226
注 册:2009-6-11
收藏
得分:0 
晕,你贴的代码确定正确吗
2009-11-09 00:53
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:0 
你发的代码肯定是有问题的,但你说能编译输出结果会多个0,就针对这问题来说(先不考虑是否能编译)。
·
int creat()第一开始你创建个链表头,头里的data值没初始值,link也没赋NULL空。
{
 head=(Node *)malloc(sizeof(Node));
 if(!head)
   {
    printf("errer");
    exit(-2);
   }
}
假设头head->data=0,head->link=NULL ,你插入一个新的结点值为new_node->data=34,你的链表是从大到小排序,插入进就是34 0,这结果正常,如0不是有效数,那就是多个0,要把这0去掉就要在插入函数里多加条判断,判断将要插入的链表是否是刚建的,如是刚建的,直接把34赋给头data,不是才是做插入处理。

努力—前进—变老—退休—入土
2009-11-09 01:29
黄色海岸2009
Rank: 1
等 级:新手上路
帖 子:38
专家分:2
注 册:2009-11-7
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct node
{
 int data;
 struct node *link;

} Node;
int  creat();
int  insertElement(Node **head,int value);
int  printlist(Node *temp);
int  getMinval(Node *temp);
int  getMaxval(Node *temp);
int  removeElement(Node **head,int value);
Node *head;

int main(void)
{
creat();
printf(" insert 47: %d\n ",insertElement(&head,47));
printf("insert :11 %d\n ",insertElement(&head,11));
printf("insert :23 %d\n ",insertElement(&head,23));
printf("insert :11 %d\n ",insertElement(&head,11));
printlist(head);
}
int creat()
{
 head=(Node *)malloc(sizeof(Node));
 if(!head)
 {
  printf("malloc head NULL");
  exit(-2);
  head->data=-1;
  head->link=NULL;
  }
 
}

int  insertElement(Node **head,int value)
{
 Node *p;
 Node *q;
 Node *new_node;
 p=*head;
 q=NULL;
 if(value<0) {value=-4;}
 else
 {
 if(head->link=NULL) {
 head->data=value;

 }
 else
 {
 while(p!=NULL&&p->data>value)
 {
  q=p;
  p=p->link;
 }
  new_node=(Node *)malloc(sizeof(Node));
  if(!new_node)
  {
   printf("malloc new_node error");
   exit(-2);

  }
 if(p->data==value){ value=-1; }
  else
  {
 new_node->data=value;
 new_node->link=p;

 if(!q)
  {
 *head=new_node;
  }
 else
 {
  q->link=new_node;
 
 }
 
 }
  }
}
 return(value) ;
 
}

这下代码应该是对的啦
我按照帅哥版主的方法做判断
也在代码上了
可是不能编译
不知道谁可以告诉我具体如何在插入函数中做判断
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
十分感谢啦
2009-11-09 05:02
快速回复:为什么输出时多个0
数据加载中...
 
   



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

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