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抓取网页正文的源码
Jun 11 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
Python正则表达式使用范例分享
Dec 04 Python
使用pyecharts在jupyter notebook上绘图
Apr 23 Python
对Python+opencv将图片生成视频的实例详解
Jan 08 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
解决Django加载静态资源失败的问题
Jul 28 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
tensorflow 实现自定义layer并添加到计算图中
Feb 04 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
Apr 06 Python
Python面试不修改数组找出重复的数字
May 20 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 zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
php中动态修改ini配置
2014/10/14 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
写的htc的数据表格
2007/01/20 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
浅析Node.js实现HTTP文件下载
2016/08/05 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
js实现一个简易计算器
2020/03/30 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
[05:06]TI4西雅图DOTA2前线报道 海涛密探LGD训练
2014/07/09 DOTA
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
公司中层干部的自我评价分享
2014/03/01 职场文书
霸王洗发水广告词
2014/03/14 职场文书
任命书范本大全
2014/06/06 职场文书
2014年中秋寄语
2014/08/11 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
python3实现常见的排序算法(示例代码)
2021/07/04 Python