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改变日志(logging)存放位置的示例
Mar 27 Python
Python yield 小结和实例
Apr 25 Python
python生成器generator用法实例分析
Jun 04 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
用python与文件进行交互的方法
Mar 01 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
对django 模型 unique together的示例讲解
Aug 06 Python
如何利用Python识别图片中的文字
May 31 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
全国中波电台频率表
2020/03/11 无线电
php Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
python爬虫实例详解
2018/06/19 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python 导入数据及作图的实现
2019/12/03 Python
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
2014年大学生四年规划书范文
2014/04/03 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
2015年暑假工作总结
2015/07/13 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis