| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 504 人关注过本帖
标题:链表相关问题(高手指教错在哪)
只看楼主 加入收藏
manmanmalu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-7-30
收藏
 问题点数:0 回复次数:7 
链表相关问题(高手指教错在哪)
#include<stdio.h>
#include<malloc.h>
struct node
{
    int data;
    struct node *next;
};

struct node * create(struct node *head)
{   
    struct node *news,*tail;
    int value;
    head=tail=NULL;
    printf("请输入一个整数:  ");
    scanf("%d",&value);
    while(value!=0)
    {
     news=(struct node *)malloc(sizeof(struct node));
     news->data=value;
     news->next=NULL;
    if(head==NULL)
      head=tail=news;      
    else
      {
      tail->next=news;
      tail=news;
      }
    printf("请输入一个整数:  ");
    scanf("%d",&value);
    return(head);
}
void output(struct node *head)
{
   struct node * p;
   p=head;
   while(p!=NULL)
   {
    printf("%d\n",p->data);
    p=p->next;
   }
}
void main()
{   struct node *head1,*head2;
    head1=head2=NULL;
    head2=create(head1);
    output(head2);

}
搜索更多相关主题的帖子: 指教 链表 
2009-09-15 15:59
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
create 的 return 放错地方了吧。
2009-09-15 16:12
jackwain
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:168
专家分:134
注 册:2009-3-21
收藏
得分:0 
建立链表那时少了个}
 
刚学链表吗?
这个链表结构程序写的不是很好,
加油

2009-09-15 16:30
jammyzm
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:90
专家分:126
注 册:2008-12-1
收藏
得分:0 
#include<stdio.h>
#include<malloc.h>
struct node
{
    int data;
    struct node *next;
};
 
struct node * create(struct node *head)
{   
    struct node *news,*tail;
    int value;
    head=tail=NULL;
    printf("请输入一个整数:  ");
    scanf("%d",&value);
     while(value!=0)
    {
     news=(struct node *)malloc(sizeof(struct node));
     news->data=value;
     news->next=NULL;
    if(head==NULL)
      head=tail=news;      
    else
      {
      tail->next=news;
      tail=news;
      }
    printf("请输入一个整数:  ");
    scanf("%d",&value);
    }
    return(head);
}
void output(struct node *head)
{
   struct node * p;
   p=head;
   while(p!=NULL)
   {
    printf("%d\n",p->data);
    p=p->next;
   }
}
int  main()
{   struct node *head1,*head2;
    head1=head2=NULL;
    head2=create(head1);
    output(head2);
    return 0;
}
帮你改了,不在试试
2009-09-15 18:01
雪花神剑
Rank: 2
来 自:吉林
等 级:论坛游民
帖 子:579
专家分:47
注 册:2009-3-12
收藏
得分:0 
版主是好人
2009-09-15 18:58
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
这个链表是没有头结点的链表 建议使用带有头结点的 方便简单 意看
还有函数头部应该是viod
#include<stdio.h>  
#include<malloc.h>  
struct node  
{  
    int data;  
    struct node *next;  
}listnode;
typedef listnode * linklist;  
 
listnode * create(void)  
{     
    linklist head;   
    listnode *news,*tail;  
    int value;  
    head=(listnode*)malloc(sizeof(listnode));
    head->next=null;
    tail=head;  
    printf("请输入一个整数:  ");  
    scanf("%d",&value);  
     while(value!=0)  
    {  
     news=(listnode *)malloc(sizeof(listnode));
     if(news==null)
       {
         printf("error");
       }
     else
     {
     news->data=value;  
     tail->next=news;
     tail=news;  
     printf("请输入一个整数:  ");  
     scanf("%d",&value);  
     }
     tail->next=null;   
    return(head);   

}  
void output(listnode *head)  
{  
   listnode * p;  
   p=head;  
   while(p!=NULL)  
   {  
    printf("%d\n",p->data);  
    p=p->next;  
   }  
}  
int  main()  
{   listnode *head;   
    head=create();  
    output(head);  
    return 0;  
}  
2009-09-15 22:57
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
对了 你那个生成结点时没有判断新结点是不是已经生成新的
2009-09-15 23:02
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:0 
哎 不好意思 数据结构的说明丢了个typedef
我刚刚在vc++6.0上调试一下
下面的#include "stdafx.h"
#include<stdio.h>   
#include<malloc.h>   
typedef struct node   
{   
    int data;   
    struct node *next;   
}listnode;
typedef listnode * linklist;   
void output1(listnode *head);
listnode * create(void);
int main(int argc, char* argv[])
{
    listnode * head;     
    head=create();   
    output1(head);  
    return 0;
}
listnode * create(void)   
{      
    linklist head;     
    listnode *news,*tail;   
    int value;   
    head=(listnode*)malloc(sizeof(listnode));
    head->next=NULL;
    tail=head;   
    printf("shuruyigeshu  ");   
    scanf("%d",&value);   
     while(value!=0)   
    {   
     news=(listnode *)malloc(sizeof(listnode));
     if(news==NULL)
       {
         printf("error");
       }  
     else
     {  
     news->data=value;   
     tail->next=news;
     tail=news;   
     printf("shuri  ");   
     scanf("%d",&value);   
     }
    }
     tail->next=NULL;   
    return(head);   
 
}
void output1(listnode *head)
{
    while(head!=NULL)
    {
        printf(" %d ",head->data);
        head=head->next;
    }
}
2009-09-15 23:29
快速回复:链表相关问题(高手指教错在哪)
数据加载中...
 
   



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

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