3个回答
2015-08-01 · 知道合伙人互联网行家
关注
展开全部
#include <stdio.h>
#include <stdlib.h>
//类型定义typedef在使用的时候如果直接按下面的方式定义,是错误的:
/*typedef struct Node
{
int data;
Node * next;
};
*/
//应该定义为:
typedef struct node
{
int data;
struct node * next;
}Node;
/*宏定义的后面一定“不能”有分号“;”*/
#define LEN sizeof(Node)
#define NULL 0
main()
{
Node* create(int n);
Node* p;
p = create(3);
while(p != NULL)
{
printf("%d, ",p->data);
p = p->next;
}
printf("\n");
}
Node* create(int n)
{
int i;
//定义指针变量时,下面的定义方式是错误的:
//node* head, p1, p2;
Node *head, *p1, *p2;
//head = p2 = NULL;
for(i=0;i<n;i++)
{
p1 = (Node*)malloc(LEN);
printf("Please input the data of your node: \n");
scanf("%d",&p1->data);
if(i==0)
p2 = head = p1;
else
{
p2->next = p1;
}
p1->next = NULL;
p2 = p1;
}
return head;
}
2013-10-30
展开全部
开辟一个空间,赋上一个值,连到前面节点,就形成链表喽
code如下:
#include "stdio.h"
#include"malloc.h"
typedef struct node
{
int data;
struct node *next;
}link;
link *creat(int n) //创建链表
{
link *head,*p,*s;
int i;
if(n<1) return NULL;
p=head=(link *)malloc(sizeof(link));
for(i=1;i<=n;i++)
{
s=(link *)malloc(sizeof(link));
scanf("%d",&s->data);
p->next=s;
p=s;
}
p->next=NULL;
return head;
}
void display(link *head)//显示链表内容
{
link *p;
p=head->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\
");
}
void main()
{
link *head;
head=creat(5);//创建一个5个节点的链表
printf("链表:\
");
display(head);
}
code如下:
#include "stdio.h"
#include"malloc.h"
typedef struct node
{
int data;
struct node *next;
}link;
link *creat(int n) //创建链表
{
link *head,*p,*s;
int i;
if(n<1) return NULL;
p=head=(link *)malloc(sizeof(link));
for(i=1;i<=n;i++)
{
s=(link *)malloc(sizeof(link));
scanf("%d",&s->data);
p->next=s;
p=s;
}
p->next=NULL;
return head;
}
void display(link *head)//显示链表内容
{
link *p;
p=head->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\
");
}
void main()
{
link *head;
head=creat(5);//创建一个5个节点的链表
printf("链表:\
");
display(head);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-30
展开全部
我不相信你这样能学好C语言,如果是去当程序员,只能成为码农。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询