c语言单链表的基本操作

链表

是一种动态存储方式,和顺序表相比,链表物理存储上是非连续的,而且采用动态内存开辟,其优点是方便插入,没有上限的存储,不需要内存空间的重组,能有效的分配和利用内存资源,不会造成空间浪费,缺点是排序很麻烦,查找也很麻烦,而且需要多个指针操作,容易出错。
链表的各类操作包括:链表的创建、删除、插入、输出、排序等。

结构体定义

要想学懂链表,必须先学好并灵活运用结构,在链表中,一个个独立的结点就是一个结构体元素,一个结点包括两部分(数据域和指针域),靠指针将他们链接在一起。

typedf struct Node
{
    DataType _date;  
    struct Node *_next;
    //存放下一个节点的地址
}Node,*pNode;

链表

创建链表三个重要属性:头指针、头结点、尾结点。
头指针(pHead):指向链表头部的指针,也可以看作是 一个特殊的结点,有指针域和数据域,虽然有数据域但不储存任何数据,也没有任何作用,指针域指向第一个结点数据域;
头结点(pNode):链表的第一个结构体元素,其指针域存放第2个节点的地址;
尾结点(TailNode):链表最后一个结构体元素,数据域存放数据域,指针域一般指向空(NULL)。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<malloc.h>
#include<stdio.h>
#include<Windows.h>
typedef int DataType;
typedef struct Node
{   
    DataType _data;     
    struct Node * _pNext;
}*pNode;
//初始化链表
void InitList(pNode* pHead) 
{ 
    assert(pHead);
    <
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值