文章目录
前言
提示:这里可以添加本文要记录的大概内容:
单链表的结构体包括数据域和指针域,可以根据指针域找到下一个结点
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;
}
先写到这里,后面在补充