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 selenium如何设置等待时间
Sep 15 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
python的scikit-learn将特征转成one-hot特征的方法
Jul 10 Python
Python中staticmethod和classmethod的作用与区别
Oct 11 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
python中Lambda表达式详解
Nov 20 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
python计算二维矩形IOU实例
Jan 18 Python
python 穷举指定长度的密码例子
Apr 02 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
ip签名探针
2006/10/09 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
解析vue中的$mount
2017/12/21 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
Vue3为什么这么快
2020/09/23 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python实现斐波那契递归函数的方法
2014/09/08 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Python验证码截取识别代码实例
2020/05/16 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
python 写一个文件分发小程序
2020/12/05 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
韩国11街:11STREET
2018/03/27 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
Linux操作面试题
2015/02/11 面试题
护理专业个人求职简历的自我评价
2013/10/13 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
小学优秀班主任材料
2014/12/17 职场文书
公司庆典欢迎词
2015/01/26 职场文书
小学班级口号大全
2015/12/25 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis