首页 > 其他分享 >单链表的基本概念

单链表的基本概念

时间:2024-10-15 19:48:26浏览次数:9  
标签:单链 LNode int next LinkList NULL data 基本概念

  • 单链表的定义

typedef struct LNode{
    int data;
    struct LNode *next;  //定义一个指向结构体自身的指针,用来指向下一个节点
}LNode,*LinkList;        
_____________________________________________
LNode *p = LinkList p;        //两种定义指针的形式,侧重点不同,效果相同

  • 头插法

LinkList Head_insert(LinkList L){
    int x;
    scanf("%d ",&x);
    while(x!=-1){
        LNode *s=(LNode *)malloc(sizeof(LNode));
        s->data=x;
        s->next=L->next;
        L->next=s;
        scanf("%d",&x);
    }
    return L;
}

头插法可运行示例代码

#include"stdio.h"
#include"stdlib.h"
#define MaxSize 10
typedef struct LNode{
    int data;
    struct LNode *next;
}LNode,*LinkList;
LinkList Head_insert(LinkList L){
    int x;
    scanf("%d ",&x);
    while(x!=-1){
        LNode *s=(LNode *)malloc(sizeof(LNode));
        s->data=x;
        s->next=L->next;
        L->next=s;
        scanf("%d",&x);
    }
    return L;
}
int main(){
    LinkList L = (LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    L = Head_insert(L); // 调用头插法创建链表
    // 输出链表
    LNode *p = L->next;
    while(p!=NULL){
        printf("%d ",p->data);
        p=p->next;
    }
    p=L->next;
    while(p!=NULL){
        LNode*q=p;
        p=p->next;
        free(q);
    }
    free(L);
}
  • 尾插法

void wei_insert(LinkList L)
{
    int x;
    scanf("%d",&x);
    LNode*r=L;
    while(x!=-1){
        LNode*s=(LNode*)malloc(sizeof(LNode));
        s->data=x;
        r->next=s;
        r=s;
        scanf("%d",&x);
    }
    r->next=NULL;
}

尾插法可运行示例代码

#include"stdio.h"
#include"stdlib.h"
typedef struct LNode
{
    int data;
    struct LNode *next;
}LNode,*LinkList;
void wei_insert(LinkList L)
{
    int x;
    scanf("%d",&x);
    LNode*r=L;
    while(x!=-1){
        LNode*s=(LNode*)malloc(sizeof(LNode));
        s->data=x;
        r->next=s;
        r=s;
        scanf("%d",&x);
    }
    r->next=NULL;
}
int main()
{
    LinkList L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    wei_insert(L);
    LNode*p=L->next;
    while(p!=NULL){
        printf("%d ",p->data);
        p=p->next;
    }
    while(p!=NULL){
        LNode*q=p;
        p=p->next;
        free(q);
    }
    free(L);
}

创建了一个408交流群,旨在大家一起学习进步,上岸理想院校,感兴趣的小伙伴速度进群学习吧

标签:单链,LNode,int,next,LinkList,NULL,data,基本概念
From: https://blog.csdn.net/m0_74181956/article/details/142962563

相关文章

  • EST 资源表示压缩的基本概念和实现原理
    REST资源表示压缩是一种通过压缩资源表示来提高网络传输效率的技术。在网络传输过程中,资源表示占用了大量的带宽和传输时间。因此,对于大型RESTAPI或者传输内容较多的场景,采用资源表示压缩技术可以显著提高传输速度和效率。本文将从以下几个方面介绍REST资源表示压缩的技术......
  • 第7周 7.1 面向对象的基本概念
    7.1面向对象的基本概念7.1.1类与对象面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。面向对象是一种编程思想,它将现实世界中的事物抽象为程序中的对象,每个对象都拥有自己的属性和行为。这种思想强调通过对象之间的交互来实现程序功能,而不是传统......
  • 数据结构————————单链表
    1单链表1.1概念与结构        概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。单链表就如同火车一样去掉或加上车厢不会影响到其他的车厢那么在链表中,每节车厢是什么样子的呢?如图下:1.1.1......
  • 数据结构与算法 - 单链表 & 双链表 -- 概念+实现
    文章目录前言一、顺序表的缺陷二、链表是如何设计的?三、链表的分类四、链表的概念及其结构1、链表的概念:2、链表的结构五、不带头单向不循环链表的实现(一)、SList.h的实现(二)、SList.c的实现1、初始化2、创建结点3、头插4、尾插4、头删5、尾删6、指定p......
  • 【Java 】包装类详解:从基本概念到实战技巧
     ......
  • 单链表的建立-带头结点/不带头结点的尾插法和头插法以及带头结点链表的逆置
    王道数据结构—单链表的建立#include<stdio.h>#include<stdlib.h>typedefstructLNode{ intdata; structLNode*next;}LNode,*LinkList;//带头结点尾插法建立单链表LinkListList_TailInsert(LinkList&L){ //初始化链表 L=(LNode*)malloc(sizeof(LNode)......
  • c++单链表(带头结点)
    #include<iostream>usingnamespacestd;//定义typedefstruct_LinkNode{  intdata;//结点的数据域  struct_LinkNode*next;//结点的指针域}LinkNode,Linklist;//初始化boolInitList(Linklist*&L){  L=newLinkNode;  if(!L)returnfalse; ......
  • 【MYSQL学习】10分钟速成!MySQL数据库基本概念全解密,新手也能秒变高手?
    ......
  • 7-1单链表的基本操作
    题目:7-1单链表基本操作分数20作者朱允刚单位吉林大学请编写程序实现单链表插入、删除结点等基本算法。给定一个单链表和一系列插入、删除结点的操作序列,输出实施上述操作后的链表。单链表数据域值为整数。输入格式:输入第1行为1个正整数n,表示当前单链表长度;第2行为n个......
  • Docker 学习笔记-基本概念与安装
    Docker学习笔记基本概念镜像:Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。DockerFile;镜像可以基于DockerFile构建,DockerFile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新......