- 设单链表的前二个结点值为均为1,从第三个结点开始,结点值为前二个结点值之各,试设计一个具有n(n>=3)个结点的单向链表,并输出。
- 算法内容
-
#include
#include
#define ok 1
#define error 0
typedef int elemtype;
typedef struct lnode
{
elemtype data;
struct lnode* next;
}lnode,*linklist;
void creatf1(linklist &la,int n)
{
printf("请输入各个节点元素的值:n");
linklist p,s,r;
la=(linklist)malloc(sizeof(lnode));
la->next=NULL;
p=la;
for(int i=0;i<2;i++)
{
s=(linklist)malloc(sizeof(lnode));
scanf("%d",&s->data);
p->next=s;
s->next=NULL;
p=s;
}
r=la->next;
for(int i=2;i
{
s=(linklist)malloc(sizeof(lnode));
s->data=r->data+p->data;
p->next=s;
s->next=NULL;
p=s;
r=r->next;
}
}
void print(linklist l)
{
linklist p;
p=l->next;
printf("输出的链表l为:n");
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("n");
}
int main()
{
linklist la;
int n;
printf("请输入链表的元素个数n");
scanf("%d",&n);
creatf1(la,n);
print(la);
return 0;
}
-
大概思路------定义三个结构体指针按先后顺序依次为人r,p,s,然后三个指针一起后移创造元素的值



