当前位置: 首页 > news >正文

网页制作与网站建设从入门到精通 下载网站seo分析报告案例

网页制作与网站建设从入门到精通 下载,网站seo分析报告案例,站长工具爱站网,wordpress 追格时光轴购物主题链表基本原理1.链表1.1 基本原理1.2 链表大O记法表示2. 链表操作2.1 读取2.2 查找2.3 插入2.4 删除3.链表代码实现1.链表 1.1 基本原理 节点 组成链表的数据格子不是连续的。可以分布在内存的各个位置。这种不相邻的格子就叫结点。每个结点保存数据还保存着链表里的下一结点的…

链表基本原理

  • 1.链表
    • 1.1 基本原理
    • 1.2 链表大O记法表示
  • 2. 链表操作
    • 2.1 读取
    • 2.2 查找
    • 2.3 插入
    • 2.4 删除
  • 3.链表代码实现

1.链表

1.1 基本原理

  • 节点
    • 组成链表的数据格子不是连续的。可以分布在内存的各个位置。这种不相邻的格子就叫结点。
    • 每个结点保存数据还保存着链表里的下一结点的内存地址。
  • 链表(Linkedlist)
    • 链表结构相对于顺序表可以充分利用计算机内存空间。
    • 实现灵活的内存动态管理且进行扩充时不需要进行数据搬迁。
    • 是一种常见的基础数据结构,是一种线性表

1.2 链表大O记法表示

操作大O记法表示【最坏情况】默认采用大O记法表示【最好情况】
读取O(NNN)O(1)
查找O(NNN)O(1)
插入O(NNN)O(1)
删除O(NNN)O(1)

2. 链表操作

2.1 读取

  • 链表的结点可以分布在内存的任何位置。
  • 根据索引读取
  • 读取值:必须先读取索引为0的链,顺着该链去找索引1。根据索引 1 的链去找索引 2…最终找到自己要读取的值。
    在这里插入图片描述

2.2 查找

  • 根据值查找是否存在
  • 根据读取一样,在读取每个索引节点时,读取值判断是否与查找的值相等,否则读取下一个节点,直到末尾未找到值。
    在这里插入图片描述

2.3 插入

  • 开头插入:创建新节点,将新节点链表指向的下一个内存地址为原先链表头部即可
  • 中间插入:创建新节点,读取链表索引0,根据索引0找到下一个节点,依此类推找到要插入的位置,将插入索引前面的索引节点链表指向的下一个内存地址为新节点位置,将新节点指向的下一个内存地址为插入索引后面的索引节点
  • 末尾插入:创建新节点,读取链表索引0,根据索引0找到下一个节点,依此类推找到末尾位置,将末尾内存节点null设置为新节点的内存地址,将新节点指向的下一个内存地址设为null
    在这里插入图片描述

2.4 删除

  • 开头删除:将链表的第二个节点设置为第一个节点即可
  • 中间删除:遍历链表,遍历到要删除的索引,将删除的前一个节点指向下一个内存地址重新指向删除节点的后一个节点即可
  • 末尾删除:遍历链表,遍历到倒数第二个节点,将此节点指向的下一个节点地址设为null即可
    在这里插入图片描述

3.链表代码实现

# 节点封装
class Node():def __init__(self, item):self.item = itemself.next = None# 链表封装
class Link():def __init__(self):  # 构建一个空链表self._head = None  # _head永远要指向链表中的第一个节点,None表示链表没有节点# 读取操作def read(self,index):count = 0current = self._headwhile True:if count!=index:count += 1current = current.nextelse:item=current.itemprint(f'索引{index}的值为:{item}')breakreturn item# 查找操作def search(self, item):  # 查找节点是否存在current = self._headfind = Falsecount=0while current:if current.item == item:find = Trueprint(f'值为{item}的索引为:{count}')breakelse:current = current.nextcount+=1return find# 插入操作def add(self, item):  # 开头插入node = Node(item) # 实例化一个新的节点node.next = self._headself._head = nodedef insert(self, pos, item):  # 中间插入node = Node(item)current = self._headtemp = None# 单独判断插入位置为0的节点if pos == 0:self.add(item)# node.next = self._head# self._head = nodereturnfor i in range(pos):temp = currentcurrent = current.nexttemp.next = nodenode.next = currentdef append(self, item):  # 尾部插入# 实例化一个新的节点node = Node(item)# 如果链表为空if self._head == None:self._head = node# 如果链表为非空temp = Nonecurrent = self._headwhile current:temp = currentcurrent = current.nexttemp.next = node# 删除操作def delete(self, item):  # 将item对应的节点删除current = self._headtemp = Noneif current.item == item:  # 删除的节点是第一个节点self._head = current.nextreturnwhile current:temp = currentcurrent = current.nextif current.item == item:temp.next = current.nextreturn# 遍历整个链表def travel(self):# print(self._head.item)# print(self._head.next.item)# print(self._head.next.next.item)# current指向第一个节点# _head永远要指向第一个节点,轻易不要修改_head指向current = self._headwhile current:print(current.item,end='\t')current = current.nextprint('\n')def isEmpty(self):  # 链表是否为空return self._head == Nonedef length(self):  # 返回列表中节点的个数count = 0current = self._headwhile current:count += 1current = current.nextreturn count# 翻转def reverse(self):pre = self._headcur = pre.nextnext_node = cur.nextpre.next = Nonewhile True:cur.next = prepre = curcur = next_nodeif next_node != None:next_node = next_node.nextelse:breakself._head = pre
link = Link()
# 插入
# 头部
for i in range(1,6):link.add(i)
print('头部添加元素链表为:',end='')
link.travel()# 中间
link.insert(1, 1234)
print('中间添加元素链表为【(1, 1234)】:',end='')
link.travel()# 尾部
link.append(12)
print('尾部添加元素12链表为:',end='')
link.travel()# 读取
link.read(1)# 查找
link.search(4)# 删除
link.delete(3)
print('删除元素3后链表为:',end='')
link.travel()print("链表长度为:"+str(link.length()))
print("链表反转后值为:")
link.reverse()
link.travel()

在这里插入图片描述

http://www.hrbkazy.com/news/53460.html

相关文章:

  • 网站更新方案长沙百度快速优化排名
  • 上海网站建设就q479185700顶上廊坊seo排名霸屏
  • 淘宝网站首页是用什么软件做的巨量算数
  • 摄影网站制作百度推广管理系统
  • 自建网站怎么关闭seo怎么学在哪里学
  • 南昌市建设工程质量监督站网站排名优化公司哪家靠谱
  • 企业网页设计报价杭州seo博客
  • 百度做网站电话多少杭州优化排名哪家好
  • 桂林网站建设内容专业网站制作
  • 徐州做网站管理的公司杭州排名优化软件
  • 网站建设seo 视频脚本外链生成工具
  • 石家庄开发网站营销型网站建设策划书
  • 做网站要费用多少新闻最新消息
  • 下载官方网站app下载nba最新交易动态
  • 有个能写文章做任务的网站怎么做网页设计的页面
  • 浏览学校网站的做介绍百度竞价优化
  • flash网站的制作制作网站需要什么
  • 网站建设分析报告安卓优化大师官方下载
  • 嘉兴网站制作策划今日新闻热点
  • 做网站前景教育培训机构排名
  • nas可以做网站吗竞价代运营公司
  • 自己做网站宣传产品每天新闻早知道
  • 电脑可以做网站吗武汉网站推广排名
  • 做网站怎么赚钱的站长统计app下载
  • 哪个网站可以做电视背景墙线上推广方式
  • 下载男女做爰免费网站网络推广外包加手机蛙软件
  • 手机企业网站多少钱房地产市场现状分析
  • spring boot网站开发58黄页网推广公司
  • 自己做网站的二维码哪里有学电脑培训班
  • 做编程的+网站有哪些内容免费推广渠道有哪些