#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;
}
C语言创建一个n个结点的单链表
最新推荐文章于 2024-07-26 11:13:55 发布