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 29 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
Python中获取网页状态码的两个方法
Nov 03 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python 实现弹球游戏的示例代码
Nov 17 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
pytorch 6 batch_train 批训练操作
May 28 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环境搭建最新方法
2006/09/05 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
利用php生成验证码
2017/02/23 PHP
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
2018/06/08 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python如何运行js语句
2020/09/09 Python
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
资产经营总监岗位职责
2013/12/04 职场文书
粗加工管理制度
2014/02/04 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
艺术节主持词
2014/04/02 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
五一促销活动总结
2014/07/01 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
岗位聘任协议书
2015/09/21 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript
golang内置函数len的小技巧
2021/07/25 Golang
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers