首页 > 其他分享 >链表(3)链表的基本操作

链表(3)链表的基本操作

时间:2024-09-21 16:49:57浏览次数:12  
标签:结点 链尾 创建 链表 基本操作 连接 指针

        单链表的基本操作主要有;①创建链表;②输出链表;③査我结点;④插入结点,⑤鹏除结点;⑥重组链表。下面分别进行介绍。

一.创建链表

        创建链表是指在程序运行时,进行动态内存分配,创建若千个结点,并把这些结点连接成串,形成一个链表。在进行动态内存分配时,需要使用在(2)介绍的内存管理函数malloc()和 free()。

(1)创建链表的步骤如下:


(1)定义链表的数据结构,创建一个空的头指针。
(2)使用malloc()函数为新结点分配内存空间。
(3)将数据读入到新结点的数据域,并将该结点的指针域置为NULL。
(4)若头指针为空,则使头指针指向该新结点;若头指针为非空,则将新结点连接到链表
中;可以连接到链首或连接到链尾。
(5)判断是否有后续结点,若有,则转向(2).否则,链表创建结束。

(2)尾插法

例 接收从键盘输入的一行字符,每接收一个字符后,申请一个新结点保存该字符,每次产生的新结点连接到链尾。
 

struct link
{
    char ch;
    siruct link *next;
}
    //由于每次产生的新结点总是连接到链尾,则需要一个尾指针p2来指示链尾,头指针b指向链首。创建一个新结点p1时,若头指针为空,说明此时链表是空的,则应该使头指针指向新创建的第一个结点,即“h=p1”;若头指针非空,则新结点应该连接到链尾,即“p2->next=p1”。然后修改尾指针,使其指向链尾,即“p2=p1”。

    //创建单链表的函数structlink*create()代码如下:
struct link * create()
{
char ch;
struct link *pl, *p2,*h=NULL;
while((ch= getchar( ))!='\n'){
pl=(struet

标签:结点,链尾,创建,链表,基本操作,连接,指针
From: https://blog.csdn.net/2302_80782671/article/details/142416592

相关文章

  • 【Git 操作】Git 的基本操作
    文章目录1.Git的配置2.工作区、暂存区、版本库1.Git的配置......
  • 基于python的opencv图像处理基本操作
    一、如何下载opencv包在Python中下载OpenCV包,最常用的方法是使用pip命令。pip是Python的包安装工具,可以方便地从Python包索引(PyPI)安装和管理包。以下是一些基本的步骤和命令,帮助你通过pip安装OpenCV。在命令行中输入以下命令来安装OpenCV:pipinstallopencv-python在国内使......
  • 【数据结构】链表及其代码实现
    之前我们已经学习了顺序表,现在让我们来进行对链表的学习!!!【顺序表详解】......
  • python基本操作
    98+100001001400000100print(a&b)真真都取其他不取000000000print(a|b)都取假假不取0000110113print(a^b)都取真真假假不取0000110113print(~a)-10a=138+4+100001101b=64+200000110p......
  • 19080 反转链表
    ###思路1.初始化三个指针:`prev`(前驱节点),`curr`(当前节点),`next`(后继节点)。2.遍历链表,将当前节点的`next`指针指向前驱节点,实现反转。3.移动三个指针,继续反转下一个节点,直到遍历完整个链表。4.最后,将头节点指向新的头节点(即原链表的最后一个节点)。###伪代码```funct......
  • 单链表定义和操作
    首先是单链表的定义,使用结构体定义两个部分,分别是数据域和指针域。点击查看代码typedefstructLNode{ ElemTypedata; structLNode*next;}LNode,*LinkList;这里可以使用typedef关键字将后续的定义简化。具体例子如下:如果这样定义structLNode{}的话。在定义LNode类......
  • 循环链表实现约瑟夫问题
    问题描述利用循环链表实现:读入2个整数A和B,然后输出2个整数C和D。其中A表示人数,这些人的id分别为1,2,3,...A,他们按照id依次围成一圈。从id为1的人开始报数,报到B的人退出圈,然后从下一个人开始重新报数,报到B的人又退出圈,如此反复,直到剩下2人为止。C和D为剩下的......
  • 关于链表逆序的(递归方法)
    LinkNode*turnoff(LinkNode*head){head->next->next=head;head->next=NULL;returnhead;//这里我们需要返回新的头(head);}以上我们创建了一个简单但函数还不是递归的。上述我们不可以从头开始,要从尾巴开始;这个时候需要递归一下到最后一个节点。即:LinkNode*turnoff......
  • 探秘Python中的链表:从零开始的奇妙之旅
    引言链表之所以重要,是因为它提供了一种灵活的方式来存储和操作数据集合。不同于数组,链表允许我们在无需重新分配内存的情况下动态地添加或删除元素。这使得它成为处理不确定大小数据集的理想选择。此外,在某些特定场景下(如实现缓存机制),链表可以比其他数据结构表现得更加出色......
  • 探秘Python中的链表:从零开始的奇妙之旅
    引言链表之所以重要,是因为它提供了一种灵活的方式来存储和操作数据集合。不同于数组,链表允许我们在无需重新分配内存的情况下动态地添加或删除元素。这使得它成为处理不确定大小数据集的理想选择。此外,在某些特定场景下(如实现缓存机制),链表可以比其他数据结构表现得更加出色。基础......