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的re模块应用实例
Sep 26 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
python 调用HBase的简单实例
Dec 18 Python
Python字典数据对象拆分的简单实现方法
Dec 05 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
python装饰器使用实例详解
Dec 14 Python
pycharm导入源码的具体步骤
Aug 04 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
pycharm 复制代码出现空格的解决方式
Jan 15 Python
Django如何重置migration的几种情景
Feb 24 Python
pytorch查看网络参数显存占用量等操作
May 12 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
解析php时间戳与日期的转换
2013/06/06 PHP
探讨php中header的用法详解
2013/06/07 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
js结合正则实现国内手机号段校验
2015/06/19 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
React实现轮播效果
2020/08/25 Javascript
[01:09:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第一场 6.2
2018/06/04 DOTA
对numpy中轴与维度的理解
2018/04/18 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Python Map 函数的使用
2020/08/28 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
Aosom西班牙:家具在线商店
2020/06/11 全球购物
C语言开发工程师测试题
2016/12/20 面试题
建筑经济管理专业求职信分享
2014/01/06 职场文书
参观考察邀请函范文
2014/01/29 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
公务员政审材料范文
2014/12/23 职场文书
处级干部考察材料
2014/12/24 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书