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 Mysql自动备份脚本
Jul 14 Python
Python中正则表达式的用法实例汇总
Aug 18 Python
python格式化字符串实例总结
Sep 28 Python
Python记录详细调用堆栈日志的方法
May 05 Python
python实现多人聊天室
Mar 31 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python 从attribute到property详解
Mar 05 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
Python 在局部变量域中执行代码
Aug 07 Python
python3中确保枚举值代码分析
Dec 02 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 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
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
jQuery的一些注意
2006/12/06 Javascript
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
JS实现的字符串数组去重功能小结
2019/06/17 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
python字符串与url编码的转换实例
2018/05/10 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python__name__原理及用法详解
2019/11/02 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
学期自我鉴定范文
2013/10/01 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
2014旅游局党组书记党建工作汇报材料
2014/11/02 职场文书
2014年财务部工作总结
2014/11/11 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
javascript对象3个属性特征
2021/11/17 Javascript