单链表的基本运算算法

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

//----------实现单链表的各种基本运算的算法-----------------
// #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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值