| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:我真的找不出来 那里有问题了啊 !快疯了啊
取消只看楼主 加入收藏
某某
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-19
收藏
 问题点数:0 回复次数:1 
我真的找不出来 那里有问题了啊 !快疯了啊

#include<stdio.h>
#include<malloc.h>
#define NULL 0
struct node
{ int data ;
struct node *next;
};
struct node *createlink(int n)
{ struct node *head,*p,*q;
int i,a;
head=(struct node *)malloc(sizeof(struct node *));
p=q=head;
for(i=0;i<n;i++)
{ p=(struct node *)malloc(sizeof(struct node *));
scanf("%d",&a);
p->data=a;
q->next=p;
q=p;
}
p->next=NULL;
return head;
}
int length(struct node *head )
{ struct node *p;
int count=0;
p=head->next;
while(p!=NULL)
{ count++;
p=p->next;
}
return count;
}
struct node *insert(int length,struct node *head)
{struct node *r,*p,*q;
int j,x,a,b;
p=head;
while(p->next!=NULL)
{for(j=0;j<length-1;j++)
{p=p->next;
q=p->next;
if((p->data-q->data)>1)
{x=p->data-q->data;
for(j=0;j<x-1;j++)
{r=(struct node *)malloc(sizeof(struct node));
a=p->data;
r->data=a-1;
r->next=p->next;
p->next=r;
p=r;
}
}


if((q->data-p->data)>1)
{x=q->data-p->data;

for(j=0;j<x-1;j++)
{r=(struct node *)malloc(sizeof(struct node));
p->data=b;
r->data=b-1;
r->next=p->next;
p->next=r;
p=r;
}
}
}
}
return head;
}
print(struct node *head)
{ struct node *p;
p=head->next;
while(p!=NULL)
{printf("->%d",p->data);
p=p->next;
}
}
main()
{ struct node *head,*p;
int n,a;
scanf("%d",&n);
head=createlink(n);
print(head);
a=length(head);
p=insert(a,head);
print(p);
}
把链表中的数据按等差为1填充 如1->3->8->5 变为1->2->3->4->5->6->7->8->7->6->5

搜索更多相关主题的帖子: include return 
2007-06-01 21:22
某某
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-19
收藏
得分:0 

#include<stdio.h>
#include<malloc.h>
#define NULL 0
struct node /*定义结构体*/
{ int data ;
struct node *next;
};
struct node *createlink(int n)/*创建带头接点的链表*/
{ struct node *head,*p,*q;
int i,a;
head=(struct node *)malloc(sizeof(struct node *));
p=q=head;
for(i=0;i<n;i++)
{ p=(struct node *)malloc(sizeof(struct node *));
scanf("%d",&a);
p->data=a;
q->next=p;
q=p;
}
p->next=NULL;
return head;
}
int length(struct node *head )/*计算链表的长度*/
{ struct node *p;
int count=0;
p=head->next;
while(p!=NULL)
{ count++;
p=p->next;
}
return count;
}
struct node *insert(int length,struct node *head)
{struct node *r,*p,*q;
int j,x,a,b;
p=head;
while(p->next!=NULL)
{for(j=0;j<length-1;j++)/*从头接点开始扫描*/
{p=p->next;
q=p->next;
if((p->data-q->data)>1)/*如果P的数据域大于q的数据域*/
{x=p->data-q->data;/*计算差值*/
for(j=0;j<x-1;j++)
{r=(struct node *)malloc(sizeof(struct node));/插入接点要求在p,q只间以p为为首项以1为公差递减到q*/
a=p->data;
r->data=a-1;
r->next=p->next;
p->next=r;
p=r;
}
}


if((q->data-p->data)>1) /*如果P的数据域大于q的数据域*/

{x=q->data-p->data;


for(j=0;j<x-1;j++)
{r=(struct node *)malloc(sizeof(struct node));/插入接点要求在p,q只间以p为为首项以1为公差递增到q*/
p->data=b;
r->data=b+1;
r->next=p->next;
p->next=r;
p=r;
}
}
}
}
return head;
}
print(struct node *head)/*输出链表*/
{ struct node *p;
p=head->next;
while(p!=NULL)
{printf("->%d",p->data);
p=p->next;
}
}
main()
{ struct node *head,*p;
int n,a;
scanf("%d",&n);
head=createlink(n);
print(head);
a=length(head);
p=insert(a,head);
print(p);
}

2007-06-01 23:33
快速回复:我真的找不出来 那里有问题了啊 !快疯了啊
数据加载中...
 
   



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

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