408数据结构与算法—单链表的基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了408数据结构与算法—单链表的基本操作相关的知识,希望对你有一定的参考价值。


【408数据结构与算法】—单链表的基本操作(六)

一、单链表—取第i个元素值

算法的思路:分别取出第3个元素和第i个元素的内容。从链表的头指针出发,顺着链域next逐个结点往下搜索,直到搜索到第i个结点为止,因此,链表不是随机存取结构

【408数据结构与算法】—单链表的基本操作(六)_结点


算法的思路:

  • 从第1个结点(L->next)顺链扫描,用指针p指向当前扫描到的结点,p初始值p=L->next
  • j做计数器,累计当前扫描过的节点数,j的初始值为1
  • 当p指向扫描到的下一结点时,计数器j加1
  • 当j==i时,p所指的结点就是要找的第i个结点

【408数据结构与算法】—单链表的基本操作(六)_结点_02

二、单链表—按值查找

按值查找—根据指定数据获取该数据所在的位置(地址)例如:分别查找30和值为15的元素

【408数据结构与算法】—单链表的基本操作(六)_链表_03


算法步骤:

  • 从第一个结点起,依次和e相比较
  • 如果找到一个其值与e相等的数据元素,则返回其在链表中的位置或地址
  • 如果查遍整个链表都没有找到其值和e相等的元素则返回0或null

算法描述

【408数据结构与算法】—单链表的基本操作(六)_结点_04


算法设计—根据指定数据获取该数据位置序号

【408数据结构与算法】—单链表的基本操作(六)_结点_05

三、单链表—插入

插入—在第i个结点前插入值为e的新结点

【408数据结构与算法】—单链表的基本操作(六)_算法_06


算法步骤: