鱼C论坛

 找回密码
 立即注册
查看: 3062|回复: 11

题目是将以链表形式存储的数据进行逆置,不知道程序哪里错了

[复制链接]
发表于 2013-9-30 12:59:42 | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>
#include <malloc.h>
typedef struct node//定义结构体

{
int num;
struct node *next;
}LNode,*LinkList;

int main()
{
  int na,i,j=0,k,check;  //na负责接受动态链表a的大小
  LNode head,second;//head作为链表的头
  LinkList p,q;  

  
  head.num=0;//对链表头的初始化
  head.next=NULL;
  second=head;

  printf("请输入数组A的大小:\n");
  scanf("%d",&na);

  printf("请输入数组A:\n");//给链表赋值
  for(i=0;i<na;i++)
  {
   p=(LNode *)malloc(sizeof(LNode));
   scanf("%d",&p->num);
   p->next=NULL;
   second.next=p;
   second=*p;
  }
  
  
  p=head.next;
  second=head;
  check=na;
  
  for(i=0;i<na-1;i++)//将链表逆置
  {
   for(j=0;j<check-2;j++)
   {
    p=p->next;
   
   }
      q=p->next;
   q->next=second.next;
      second.next=q;  
      second=*q;
   p->next=NULL;
   
  }

  p=head.next;
  while(p!=NULL)
  {
     printf("%d  ",p->num );
     q=p;
    p=p->next;
   // free(q);
  }
  
  return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-30 13:17:11 | 显示全部楼层
你建立链表的时候就错了,你输出你的链表看看。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-30 13:18:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-9-30 14:35:26 | 显示全部楼层
liufei_vip 发表于 2013-9-30 13:17
你建立链表的时候就错了,你输出你的链表看看。。。

请问下是哪里错了?我自己现在找不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-30 16:31:14 | 显示全部楼层
给我的感觉好像链表 的建立就出错了把
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-30 21:48:00 | 显示全部楼层
        for(i=0;i<na-1;i++)//将链表逆置
        {
                for(j=0;j<check-2;j++)
                {
                        p=p->next;
                       
                }
                q=p->next;
                q->next=second.next;
                second.next=q;  
                second=*q;
                p->next=NULL;
               
        }

这里出现问题了!!!!!!刚刚用VC测试了一下!!

这里出现错误了!

这里出现错误了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-1 07:45:15 | 显示全部楼层
晓组织 发表于 2013-9-30 21:48
for(i=0;inext;
                q->next=second.next;
                second.next=q;  

我曾尝试把这一节删了,但是后面也没有打印出来,唉。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-10-1 14:49:03 | 显示全部楼层
woailonglonga 发表于 2013-9-30 13:18
就是输出不了T T

随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成功。
成功后再尝试逆序输出。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-1 18:14:55 | 显示全部楼层
因为second=head,是结构体赋值,没有使用指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-1 18:16:43 | 显示全部楼层
本帖最后由 woailonglonga 于 2013-10-1 18:59 编辑

中间部分也有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-1 18:57:50 | 显示全部楼层
本帖最后由 woailonglonga 于 2013-10-1 19:00 编辑

愿我今天可以找出问题~~阿门
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-10-1 19:00:48 | 显示全部楼层
liufei_vip 发表于 2013-10-1 14:49
随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成 ...

恩恩我先试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表