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写的图片蜘蛛人代码
Aug 27 Python
python实现从ftp服务器下载文件的方法
Apr 30 Python
python rsa 加密解密
Mar 20 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
pyspark 随机森林的实现
Apr 24 Python
如何基于python实现不邻接植花
May 01 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 Python
python要安装在哪个盘
Jun 15 Python
Python3爬虫中pyspider的安装步骤
Jul 29 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 insert语法详解
2008/06/07 PHP
关于页面优化和伪静态
2009/10/11 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
详解django中自定义标签和过滤器
2017/07/03 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
PHP两种查询函数array/row的区别
2013/06/03 面试题
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
会计系毕业个人自荐信格式
2013/09/23 职场文书
采购部部长岗位职责
2014/02/06 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
研讨会通知
2015/04/27 职场文书
中学教师读书笔记
2015/07/01 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python