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实例分享
Oct 09 Python
Python单例模式的两种实现方法
Aug 14 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
Python解决八皇后问题示例
Apr 22 Python
python3实现点餐系统
Jan 24 Python
pycharm new project变成灰色的解决方法
Jun 27 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
Python selenium自动化测试模型图解
Apr 15 Python
python如何控制进程或者线程的个数
Oct 16 Python
Python文件的操作示例的详细讲解
Apr 08 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 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截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php 面向对象的一个例子
2011/04/12 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
使用jquery动态加载javascript以减少服务器压力
2012/10/29 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
python中的装饰器详解
2015/04/13 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
python中返回矩阵的行列方法
2018/04/04 Python
python中scikit-learn机器代码实例
2018/08/05 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
解决python flask中config配置管理的问题
2019/07/26 Python
浅析python内置模块collections
2019/11/15 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
用Python开发app后端有优势吗
2020/06/29 Python
Python异常处理机制结构实例解析
2020/07/23 Python
用python对oracle进行简单性能测试
2020/12/05 Python
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
超市开业庆典策划方案
2014/05/14 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js