知方号

知方号

数据结构单链表的c语言实现<单链表是什么的存储表示>

数据结构单链表的c语言实现

单链表的c语言实现

文章目录 单链表的c语言实现定义单链表结构体初始化单链表操作头插法创建单链表尾插法创建单链表计算单链表的长度获取单链表中元素新元素插入单链表删除链表中某元素单链表的整表删除打印出整个单链表

链表是通过一组任意的存储单元来存储线性表中的数据元素,这些存储单元可以是连续的也可以是不连续的。为了建立起数据元素之间的关系,对于每个数据元素除了存放数据元素自身的信息外,还必须有包含的指示该元素直接后继元素存储位置的信息,这两部分信息组成一个结点,即每个结点都有至少包括两个域,一个域存储数据元素信息,称为数据域,另一个域存储直接后继的地址,称为指针域。

开始程序之前,先简单了解一下单链表中的一些基本概念

头结点:在开始结点之前的结点(可有可无),其值域不包含任何信息,也可以包含链表长度等信息。开始结点:第一个元素所在的结点。头指针:永远指向链表中第一个结点的位置,如果链表有头结点,头指针指向头结点;否则,头指针指向开始结点,即第一个节点。带有头节点单链表头指针head指向头结点。头指针head始终不等于NULL,head->next等于NULL的时候链表为空。不带头结点的单链表头指针head指向开始结点,当head等于NULL时链表为空。头结点和头指针的区别:头指针是一个指针,头指针指向链表的第一个结点(如果链表有头结点,头指针指向头结点;否则,头指针指向开始结点);头结点是一个实际存在的点,它包含有数据域和指针域。头指针什么时候都应该存在,而头节点可有可无。 定义单链表结构体 typedef struct Node//定义一个结构体{elemtype data;struct Node *next;}Node;typedef struct Node *LinkList; 初始化单链表操作 int InitList(LinkList *L)//带有头节点的单链表的初始化{(*L) = (LinkList)malloc(sizeof(Node));//开辟空间if (!L){printf("分配内存失败! ");exit(0);}(*L)->next = NULL;//使头节点next为NULL,即表示空链表return 0;} 头插法创建单链表 void CreateListHead(LinkList *L)//头插法创建一个单链表{int i, n;LinkList p;//

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。