//----------实现单链表的各种基本运算的算法-----------------
// #include是编译预处理指令 .h是头文件,头文件是包含函数声明和定义的文件;
#include <stdio.h> //包含关于C程序的输入输出的各种信息 stdlib.h
#include <stdlib.h>
#include <malloc.h> //动态存储分配函数头文件
#define MaxSize 10
#define ElemType char //用define 进行宏定义
typedef char CharType; // 用typedef取别名
//定义结点结构 【结构体类型变量的定义】
typedef struct LNode{ //struct LNode是结构体类型名
ElemType data; //数据域
struct LNode *next; //定义一个可以指向LNode结构体类型的指针 ;用于指向下一个结点
//一个指针变量的值就是另外某个变量的地址,所以next可以指向下一个结点
}LinkNode; //LinkNode是通过typedef给 struct LNode 结构体类型取的别名
//初始化单链表
void InitList(LinkNode * &L){ //参数:LinkNode结构体类型的指针
L = (LinkNode *)malloc(sizeof(LinkNode)); //创建头结点 为其分配内存空间,并返回其首地址
if(L == NULL){
printf("内存空间分配失败!!\n");
exit(0); //exit(0) 表示程序正常退出;exit(1)、exit(-1)表示程序异常退出。
//在整个程序中,只要调用exit,就会结束程序。
}
L->next=NULL; //" -> "是结构体指针使用成员
// 指向结构体的指针称之为结构体指针
}
//头插法建立单链表
void ListInsertF(LinkNode * &L,ElemType a[],int n){ //参数:头指针,插入元素,插入元素个数
LinkNode *s;
InitList(L); //初始化创建头结点
for(int i=0;i<n;i++){
s = (LinkNode *)malloc(sizeof(LinkNode)); //新建结点
if(L == NULL){
printf

这篇博客详细介绍了如何使用C语言实现单链表的初始化、头插法和尾插法建立、输出、获取长度、判断空、获取指定位置元素、插入元素、删除元素以及销毁等基本操作。代码清晰易懂,是理解链表数据结构和C语言动态内存分配的好实例。
最低0.47元/天 解锁文章
1620

被折叠的 条评论
为什么被折叠?



