python数据结构学习之实现线性表的顺序

 更新时间:2018年09月28日 09:26:22   作者:z大酱  
这篇文章主要为大家详细介绍了python数据结构学习之实现线性表的顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现线性表顺序的具体代码,供大家参考,具体内容如下

线性表

1.抽象数据类型表示(ADT)

类型名称:线性表
数据对象集:线性表是n(>=0)个元素构成的有序序列(a1,a2,….,an)
操作集:

2.线性表的顺序实现

1.表示方法:
其中100可以自己规定,last代表线性表的长度

# 线性表定义
class Lnode(object):
  def __init__(self,last):
    self.data = [None for i in range(100)]
    self.last = last  # 线性表长度12345

2.建立空的顺序表

# 1.初始化建立空的线性表
def MakeEmpty(num):
  PtrL = Lnode(num)
  return PtrL

# 测试建立空的线性表
s = MakeEmpty(10)
print(s.data[0:s.last])
print(s.last)12345678910

测试结果:

3.按值查找

# 2.查找给定值的位置
def Find(x, L):
  i =0
  while(i <= L.last and L.data[i] != x):
    i+=1
  if(i> L.last):
    return -1
  else:
    return i

# 测试查找函数
num = [0,1,2,3,4,5,6,7,8,9]
L = Lnode(10)
for i in range(10):
  L.data[i] = num[i]
print("建立新的线性表")
print(L.data[0:L.last])
print("查找元素2")
print("下标为:")
print(Find(2,L))
print("查找元素12")
print("下标为:")
print(Find(12,L)) # 找不到返回-1

测试结果:

4.插入操作

# 3.插入(在第i(0<=i<=n)位置上插入一个值为x的新元素)
def Insert(x,i,L):
  if i<0 or i>L.last:
    print("位置不合理")
    return
  else:
    for j in range(L.last,i-1,-1):
      L.data[j+1] = L.data[j]
    L.data[i] = x
    L.last+=1
  return


# 测试插入函数
num = [0,1,2,3,4,5,6,7,8,9]
L = Lnode(10)
for i in range(10):
  L.data[i] = num[i]
print("建立新的线性表")
print(L.data[0:L.last])
print("在位序3插入元素6")
Insert(6,3,L)
print(L.data[0:L.last])

测试结果:

5.删除操作

# 4.删除第i(0<=i<=n-1)个位置上的元素
def Delete(i,L):
  if i<0 or i>=L.last:
    print("不存在该元素")
    return
  else:
    for j in range(i,L.last-1):
      L.data[j] = L.data[j+1]
    L.last -=1
    return

# 测试删除函数
num = [0,1,2,3,4,5,6,7,8,9]
L = Lnode(10)
for i in range(10):
  L.data[i] = num[i]
print("建立新的线性表")
print(L.data[0:L.last])
print("删除位序3的元素")
Delete(3,L)
print(L.data[0:L.last])

测试结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python map比for循环快在哪

    python map比for循环快在哪

    这篇文章主要介绍了python 为什么map比for循环快,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现从URL地址提取文件名的方法

    Python实现从URL地址提取文件名的方法

    这篇文章主要介绍了Python实现从URL地址提取文件名的方法,涉及OS模块中basename方法的使用技巧,需要的朋友可以参考下
    2015-05-05
  • Anaconda中Python虚拟环境的创建使用与删除方法详解

    Anaconda中Python虚拟环境的创建使用与删除方法详解

    这篇文章主要为大家介绍了在Anaconda环境下,创建、使用与删除Python虚拟环境的方法,具有一定的借鉴价值,需要的小伙伴可以跟随小编一起了解一下
    2023-08-08
  • 10个Python面试常问的问题(小结)

    10个Python面试常问的问题(小结)

    这篇文章主要介绍了10个Python面试常问的问题(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Python利用LyScript插件实现批量打开关闭进程

    Python利用LyScript插件实现批量打开关闭进程

    LyScript是一款x64dbg主动化操控插件,经过Python操控X64dbg,完成了远程动态调试,解决了逆向工作者剖析漏洞,寻觅指令片段,原生脚本不行强壮的问题。本文将利用LyScript插件实现批量打开关闭进程,感兴趣的可以了解一下
    2022-07-07
  • python实现代码审查自动回复消息

    python实现代码审查自动回复消息

    这篇文章主要介绍了python实现代码审查回复消息生成的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2021-02-02
  • Python使用docx模块编辑Word文档

    Python使用docx模块编辑Word文档

    docx提供了一组功能丰富的函数和方法,用于创建、修改和读取Word文档,Python可以用它对word文档进行大批量的编辑,下面小编就来通过一些示例为大家好好讲讲吧
    2023-07-07
  • python 爬取古诗文存入mysql数据库的方法

    python 爬取古诗文存入mysql数据库的方法

    这篇文章主要介绍了python 爬取古诗文存入mysql数据库的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Python获取二维矩阵每列最大值的方法

    Python获取二维矩阵每列最大值的方法

    下面小编就为大家分享一篇Python获取二维矩阵每列最大值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python 实现自动完成A4标签排版打印功能

    Python 实现自动完成A4标签排版打印功能

    这篇文章主要介绍了Python 实现自动完成A4标签排版打印功能,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04

最新评论