首页 > 其他分享 >c语言数据结构-单链表

c语言数据结构-单链表

时间:2024-08-02 13:57:31浏览次数:18  
标签:单链 return LNode int NULL next false 数据结构 语言

typedef struct LNode{
    Elemtype data;
    struct LNode *next;
}LNode , *Linklist;
//初始化单链表(不带头节点)
bool InitList (LinkList &L){
    L=NULL;
    return true;
}
插入
bool ListInsert(LinkList &L,int i,Elemtype e){
    if(i<1)
        return false;
    if(i==1){
        LNode *s = (LNode *) malloc(sizeof(Node));
        s->data = e;
        s->next=L;
        l=s;
        return ture;
    }
    LNode *P;
    int j=1;
    p=L;
    while(p!=NULL && j<i-1){
        p=p->next;
        j++;
    }
    if(p==NULL)
        return false;
    LNode *s = (LNode * )malloc(sizeof(LNode));
    s->data = e;
    s -> next = p->next;
    p -> next = s;
    return true;
}
//初始化单链表(带头结点)
bool InitList(LinkList &L){
    L = (LNode*) malloc (sizeof(LNode));
    if(L==NULL)
        return false;
    L -> next    = NULL;
    return true;
}
//插入
bool ListInsert(LinkList &L,int i,Elemtype e){
    if(i<1)
        return false;
    LNode *p
    int j=0;
    p = L;
    while (p!=NULL && j<i-1){
    p=p->next;    
    j++;
    if(i=NULL){
        return false;
    LNode *s = (LNode *)malloc(sizeof(LNode));
    s->data = e;
    s->next=p->next;
    p-next=s;
    return ture
}
}
//删除
bool ListDelete(LinkList &L,int i,Elemtype e){
    if(i<1)
        return false;
    LNode *p
    int j=0;
    p = L;
    while (p!=NULL && j<i-1){
    p=p->next;    
    j++;
    if(i=NULL){
        return false;
    if(p->next == NULL)
        return false;
    LNode *q = p->next;
    e = q ->data
    p - next = q - next;
    free(q);
    return ture
}
//按位查找(带头节点)
LNode * Getelem(LinkList L,int i){
    if(i<0)
        return false;
    LNode *p
    int j=0;
    p = L;
    while (p!=NULL && j<i){
    p=p->next;    
    j++;
    }
    return p;
}
//按值查找
LNode * locateElem ( LinkList L ,Elemtype e){
    LNode *p = L -> next;
    while(p !=NULL && p->data!=e)
        p=p->next;
    return p;
}
void test(){
    LinkListL;
    InitList(L);
}

标签:单链,return,LNode,int,NULL,next,false,数据结构,语言
From: https://blog.csdn.net/m0_60936698/article/details/140849768

相关文章

  • 基于Java的数据结构课程网站的设计与实现/线上学习系统/在线教学管理系统/Web、SSM、v
    需要源码的联系方式请查看文章末尾数据结构课程网站的设计与实现摘 要计算机网络与信息化管理相配合,可以有效地提高管理人员的工作效能和改进工作的质量。良好的数据结构课程网站可以使管理员工作得到更好的实施和应用,并有助于管理员更好地管理数据结构课程,解决人力管理......
  • C语言:进制
    简介说到进制,我们最为熟知的便是十进制,今天我们来说一下二进制,八进制和十六进制。所谓二进制,就是逢二进一,同样的,八进制和十六进制也就是逢八进一,逢十六进一。注意:十六进制中10到15用ABCDEF表示。举几个数字作为例子:十进制二进制八进制十六进制111110101012A10011001001446......
  • 数据结构:二叉树(链式结构)
    文章目录1.二叉树的链式结构2.二叉树的创建和实现相关功能2.1创建二叉树2.2二叉树的前,中,后序遍历2.2.1前序遍历2.2.2中序遍历2.2.3后序遍历2.3二叉树节点个数2.4二叉树叶子结点个数2.5二叉树第k层结点个数2.6二叉树的深度/高度2.7二叉树查找值为x的结点2.8......
  • 数据结构C语言---文件的加密和解密
    本篇的主要目的是利用所学的数据结构的知识对一个任意文件进行加密和解密。在文件加密过程中,常用的数据结构包括哈希表、树结构(如二叉搜索树、哈夫曼树)、堆、链表等。选择合适的数据结构取决于加密算法的需求和特性。选择合适的加密算法和数据结构对保障数据安全至关重要。常......
  • 从零开始学嵌入式技术之C语言09:数组
    一:数组的概念(1)概念        数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个标识符命名,并通过编号(索引,亦称为下标或角标)的方式对这些数据进行统一管理。    数组名:本质上是一个标识符常量,命名需要符合标识符规范。元素:同一个数组中的元素必须是相......
  • 深入理解C语言中的结构体
    目录引言一.结构体的基本概念1.结构体的声明2.结构体变量的创建和初始化3.结构体成员访问操作符4.结构体的特殊声明1.匿名结构体2.嵌套结构体3.结构体自引用4.typedef声明二、结构体内存对⻬1.对⻬规则2.为什么存在内存对⻬?3.修改默认对齐数三、结构体......
  • 数据结构实验----邻接表和拓扑排序
    一.实验目的1.理解拓扑排序的特性和算法;2.通过构造图的邻接表,掌握拓扑排序算法。二.实验内容1.建立邻接表存储的图;2.对图进行拓扑排序;3.输出拓扑排序序列。三.代码#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMAXSIZE10#defineOK1#......
  • 数据结构实验---散列表
    一.实验目的1.理解散列表的存储结构;2.掌握常用散列函数构造方法和处理冲突方法;3.在散列表上实现查找的算法。二.实验内容为小于n个关键字设计一个散列表,使得查找成功时平均查找长度<2.0,要求完成相应的散列表建立和查找。假设关键字为整型数据,散列函数用除留余数法,采用开放......
  • C语言中的条件判断与分支选择:深入解析if, else, else if与switch
    引言在C语言编程中,条件判断与分支选择是构建复杂逻辑、实现不同场景下代码执行路径分流的基石。if、else、elseif以及switch语句作为C语言提供的强大工具,让我们能够根据条件表达式的真假值,灵活地控制程序的执行流程。本文将带您深入探索这些判断语句的语法细节、使用场景及最佳......
  • 【数据结构】排序
    目录1.前言2.排序的概念及引用2.1排序的概念2.2常见的排序算法 3.常见排序算法的实现3.1插入排序3.1.1基本思想 3.1.2直接插入排序 3.1.3希尔排序(缩小增量排序)3.2选择排序3.2.1基本思想3.2.2直接选择排序3.2.3堆排序3.3交换排序3.3.1基本思想3.3.2冒泡排......