| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:链表数据输入与输出的问题
只看楼主 加入收藏
孤狼A组
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:73
专家分:121
注 册:2015-9-8
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:6 
链表数据输入与输出的问题
我是建立一个链表,然后存入数据,再逆序输出数据
#include<stdio.h>
struct Node
{ int data;
  struct Node *next;
}*Head,*p,*q;
typedef struct Node *LinkList;
void main()
{ int i,n=0;
  int idata;
  printf("输入0结束\n");
  scanf("%d",&idata);
  while(idata!=0)
  { if(n==0){p=(LinkList)malloc(sizeof(struct Node));
    p->data=idata;
    q=p;
   
    n++;}
  else {p=(LinkList)malloc(sizeof(struct Node));
    p->data=idata;
    p->next =q;
   
    n++;
  
  }
    scanf("%d",&idata);
    p=p->next ;
  }
  Head=q;
  for(i=0;i<n;i++)
  {   if(i!=n-1)
  {
   printf("%d-->",Head->data);   Head=Head->next;
  }
  else
  {
   printf("Null");  
  }

  free(q);
  q=Head;
 }
 printf("\n");
}
 
搜索更多相关主题的帖子: include 
2015-10-22 22:49
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
最快的辦法,是構造雙向鏈表。

授人以渔,不授人以鱼。
2015-10-22 22:57
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>       //我是这么写的
#include<string.h>
struct node 
{
    int date;
    struct node * pnext;
}; 
struct node * creat_list(struct node * h);  //创建链表
struct node * change_list(struct node * h);//调用函数进行反转 
void print_list(struct node * h);         //输出链表
int main()
{
    node * head;
    head = NULL;
    printf("请输入数据:\n");
    head = creat_list(head);
    printf("-------------------------------\n");
    print_list(head);
    printf("-------------------------------\n");
    head = change_list(head);  
    print_list(head);
} 
struct node * creat_list(struct node * h)
{
    node * p1,* p2;
     p1 = p2 = (node *)malloc(sizeof(node));
     if( p2 != NULL)
     {
         scanf("%d",&p2->date);
         p2->pnext = NULL;
     }
     while( p2->date != 0)
     {
         if(h == NULL)
             h = p2;
         else
             p1->pnext = p2;
         p1 = p2;
         p2 = (node *)malloc(sizeof(node));
         if( p2 != NULL)
         {
             scanf("%d",&p2->date);
             p2->pnext = NULL;
         }
     }
     return h;
}
void print_list(struct node * h)
{
    struct node * temp;
    temp = h;
    while(temp != NULL)
    {
        printf("%-4d\n",temp->date);
        temp = temp->pnext;
    }
}
struct node *change_list(struct node * h)
{   
    if(h == NULL||h->pnext == NULL)
          return h; 
    node * p,* q,* r;
    p = h;
    q = h->pnext;
    h->pnext = NULL;
    while(q != NULL)
    {
        r = q->pnext;
        q->pnext = p;
        p = q;
        q = r;
    }
    h = p;
    return h; 
}

静坐常思己过,闲谈莫论人非
2015-10-23 09:42
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:5 
虽然建议模块化编程, 但楼主的功能,使用头插法就可以了.


[fly]存在即是合理[/fly]
2015-10-23 10:39
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:0 
回复 4楼 azzbcc
对哈!哈哈

静坐常思己过,闲谈莫论人非
2015-10-23 10:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你試試

授人以渔,不授人以鱼。
2015-10-23 21:50
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>                     //是这样的吧?
struct Node
{ 
    int data;
    struct Node *next;
};
void print_list(struct Node * h);     //输出链表函数
void main()
{
    struct Node * head,* p1,* p2;
    head = (struct Node *)malloc(sizeof(struct Node));
    scanf("%d",&head -> data);
    head -> next = NULL;
    while(head -> data != 0)
    {
        p1 = (struct Node *)malloc(sizeof(struct Node));
        p1 -> next = head;
        scanf("%d",&p1 -> data);
        head = p1;
    }
    print_list(head);
}
void print_list(struct Node * h)
{
    struct Node * temp;
    temp = h -> next;
    while(temp != NULL)
    {
        printf("%d\n",temp -> data);
        temp = temp -> next;
    }
}

静坐常思己过,闲谈莫论人非
2015-10-24 17:57
快速回复:链表数据输入与输出的问题
数据加载中...
 
   



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

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