woailonglonga 发表于 2013-9-30 12:59:42

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

#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;
}

liufei_vip 发表于 2013-9-30 13:17:11

你建立链表的时候就错了,你输出你的链表看看。。。

woailonglonga 发表于 2013-9-30 13:18:24

liufei_vip 发表于 2013-9-30 13:17 static/image/common/back.gif
你建立链表的时候就错了,你输出你的链表看看。。。

就是输出不了T T

woailonglonga 发表于 2013-9-30 14:35:26

liufei_vip 发表于 2013-9-30 13:17 static/image/common/back.gif
你建立链表的时候就错了,你输出你的链表看看。。。

请问下是哪里错了?我自己现在找不出来

牡丹花下死做鬼 发表于 2013-9-30 16:31:14

给我的感觉好像链表 的建立就出错了把

晓组织 发表于 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测试了一下!!

woailonglonga 发表于 2013-10-1 07:45:15

晓组织 发表于 2013-9-30 21:48 static/image/common/back.gif
for(i=0;inext;
                q->next=second.next;
                second.next=q;


我曾尝试把这一节删了,但是后面也没有打印出来,唉。。。

liufei_vip 发表于 2013-10-1 14:49:03

woailonglonga 发表于 2013-9-30 13:18 static/image/common/back.gif
就是输出不了T T

随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成功。
成功后再尝试逆序输出。。。

woailonglonga 发表于 2013-10-1 18:14:55

因为second=head,是结构体赋值,没有使用指针

woailonglonga 发表于 2013-10-1 18:16:43

本帖最后由 woailonglonga 于 2013-10-1 18:59 编辑

中间部分也有问题

woailonglonga 发表于 2013-10-1 18:57:50

本帖最后由 woailonglonga 于 2013-10-1 19:00 编辑

愿我今天可以找出问题~~阿门

woailonglonga 发表于 2013-10-1 19:00:48

liufei_vip 发表于 2013-10-1 14:49 static/image/common/back.gif
随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成 ...

恩恩我先试试看
页: [1]
查看完整版本: 题目是将以链表形式存储的数据进行逆置,不知道程序哪里错了