题目是将以链表形式存储的数据进行逆置,不知道程序哪里错了
#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 static/image/common/back.gif
你建立链表的时候就错了,你输出你的链表看看。。。
就是输出不了T T liufei_vip 发表于 2013-9-30 13:17 static/image/common/back.gif
你建立链表的时候就错了,你输出你的链表看看。。。
请问下是哪里错了?我自己现在找不出来 给我的感觉好像链表 的建立就出错了把 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测试了一下!!
晓组织 发表于 2013-9-30 21:48 static/image/common/back.gif
for(i=0;inext;
q->next=second.next;
second.next=q;
我曾尝试把这一节删了,但是后面也没有打印出来,唉。。。 woailonglonga 发表于 2013-9-30 13:18 static/image/common/back.gif
就是输出不了T T
随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成功。
成功后再尝试逆序输出。。。 因为second=head,是结构体赋值,没有使用指针 本帖最后由 woailonglonga 于 2013-10-1 18:59 编辑
中间部分也有问题
本帖最后由 woailonglonga 于 2013-10-1 19:00 编辑
愿我今天可以找出问题~~阿门
liufei_vip 发表于 2013-10-1 14:49 static/image/common/back.gif
随便找本数据结构的书都有建立链表的例子。。。
你可以把程序分开写
先建立一个链表,看看能不能输出成 ...
恩恩我先试试看
页:
[1]