0
点赞
收藏
分享

微信扫一扫

带头结点单链表

盖码范 2022-04-23 阅读 41

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

单链表的结构体包括数据域和指针域,可以根据指针域找到下一个结点

typedef struct Lnode{
	int data;
	struct Lnode* next;
}Lnode,*LinkList;//Lnode *等价于*LinkList

提示:以下是本篇文章正文内容,下面案例可供参考

一、后插法创建单链表(参考严蔚敏书籍)

1 图形(根据结点的个数)

2 代码

// 后插法创建单链表(L指的是地址)
void CreateList(LinkList* L, int n) {//LinkList *L等价于Lnode **L(L是地址,*L是对地址的访问)
	*L = (LinkList)malloc(sizeof(Lnode));
	(* L)->next = NULL;
	LinkList r;//等价于Lnode *r
	r = *L;
	for (int i = 0; i < n; i++) {
		Lnode* p = (LinkList)malloc(sizeof(Lnode));
		scanf("%d", &p->data);
	    p->next=NULL;
		r ->next= p;
		r = p;
	}
}

二、打印

代码如下:
 


三 运行以上带码

#include<stdio.h>
#include<stdlib.h>
typedef struct Lnode{
	int data;
	struct Lnode* next;
}Lnode,*LinkList;//Lnode *等价于*LinkList
// 后插法创建单链表(L指的是地址)
void CreateList(LinkList* L, int n) {//LinkList *L等价于Lnode **L(L是地址,*L是对地址的访问)
	*L = (LinkList)malloc(sizeof(Lnode));
	(* L)->next = NULL;
	LinkList r;//等价于Lnode *r
	r = *L;
	for (int i = 0; i < n; i++) {
		Lnode* p = (LinkList)malloc(sizeof(Lnode));
		scanf("%d", &p->data);
	    p->next=NULL;
		r ->next= p;
		r = p;
	}
}
void printfList(LinkList L)//这相当于Lnode *L
{
	LinkList p=L->next;//访问首元结点(头结点的后一个)
	while (p)
	{
		printf("%d ", p->data);
		p=p->next;
	}

}
int main()
{
	int n;
	LinkList L;
	printf("输入要创建的链表结点个数:>");
	scanf("%d", &n);
	printf("\n输入%d个数据:\n", n);
	CreateList(&L, n);//传址调用
	printf("\n打印出来看看\n");
	printfList(L);
    return 0;
}

先写到这里,后面在补充

举报

相关推荐

0 条评论