数据结构 链表的创建--C语言描述

#include<cstdio>
#include<cstdlib>
struct student{
	long no;//学号
	char name[20];//姓名
	char addr[30];//地址
	struct student *next;
};

typedef struct student LIST;
/*链表五步法
1.申请内存
2.内存next=NULL 
3.与前一个节点链接prev->next=cur 
4.写入数据 
5.重复1~4的步骤 */

LIST* Create_LinkList(int n)
{
	LIST *head, *prev, *cur;
	

	head=NULL;

	for(int i=0; i<n; i++)
	{
		cur=(LIST*)malloc(sizeof(LIST));//1.申请内存 
		cur->next=NULL;//2.内存next=NULL 
		
		if(head==NULL)//如果当前为第一个节点
		head=cur;//创建头结点 
		else
		prev->next=cur;//如果当前不是第一个节点,3.与前一个节点链接prev->next=cur  
		prev=cur;//将当前节点设置为前一个节点 
		scanf("%d %s %s", &cur->no, &cur->name, &cur->addr);//4.写入数据  5.for循环到下一个 
	}

return head;
}

void Display_LinkList(LIST *h)
{
	LIST *p=h;
	while(p!=NULL)
	{
		printf("%d %s %s\n", p->no, p->name, p->addr);//输入数据
		p=p->next;
	}
}



int main()
{
	int n;
	LIST *head;
	scanf("%d", &n);
	head=Create_LinkList( n);
	
	printf("学号  姓名  地址\n");
	Display_LinkList(head);

return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值