参考视频 王道2021数据结构
链接: 王道2021数据结构链接
提取码:rpy8
–来自百度网盘超级会员V4的分享
#include <stdio.h>
#include <stdlib.h>
typedef int ElemType;
typedef struct LNode{
ElemType data;
LNode *next;
}LNode, *LinkList;
//初始化一个空的单链表(不带头结点)
bool IniList(LinkList &L){
L = NULL;//防止脏数据
return true;
}
//判断是否为空(不带头结点)
bool Empty(LinkList L){
return (L = NULL);
}
/*---------------------------------------*/
//初始化一个空的单链表(带头结点)
bool IniList(LinkList &L){
L = (ListLink)malloc(sizeof(LNode));//分配一个头结点
if(L == NULL) return false;//内存不足,分配失败
L->next = NULL;//头结点之后暂时还没有节点
return true;
}
//判断是否为空(不带头结点)
bool Empty(LinkList L){
return (L->next = NULL);
}
/*---------------------------------------*/
//按位插入(带头结点)06 5:53
bool ListInsert(LinkList &L, int i, ElemType e){
//判断i是否合法
if(i < 1) return false;
//指针p指向当前扫描的节点(从头开始L)
LNode *p = L;
//j显示指向的是第几个节点(初始为0)
int j = 0;
//用while循环来移动p到第i-1个节点同时还要判断在移动的过程中地址是否为NULL(循环中j<i循环(i-j)次j<=i循环(i-j+1)次)
while(p != NULL && j < i