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


Posted in Python onSeptember 28, 2018

本文实例为大家分享了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

测试结果:

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

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

测试结果:

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

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])

测试结果:

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

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数据结构学习之实现线性表的顺序

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

Python 相关文章推荐
跟老齐学Python之总结参数的传递
Oct 10 Python
Python画图学习入门教程
Jul 01 Python
Python与R语言的简要对比
Nov 14 Python
Python读取Word(.docx)正文信息的方法
Mar 15 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 #Python
使用Python处理BAM的方法
Sep 28 #Python
python版本单链表实现代码
Sep 28 #Python
python实现反转部分单向链表
Sep 27 #Python
python八皇后问题的解决方法
Sep 27 #Python
python判断数字是否是超级素数幂
Sep 27 #Python
Flask实现跨域请求的处理方法
Sep 27 #Python
You might like
解决GD中文乱码问题
2007/02/14 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
vue从使用到源码实现教程详解
2016/09/19 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
js实现本地图片文件拖拽效果
2017/07/18 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
详解使用webpack构建多页面应用
2017/12/21 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Django框架多表查询实例分析
2018/07/04 Python
关于Python作用域自学总结
2019/06/10 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
抽象方法、抽象类怎样声明
2014/10/25 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
党员培训思想汇报
2014/01/07 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
遗嘱范文
2015/08/07 职场文书
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python