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中的join()函数的用法
Apr 07 Python
Python随机数random模块使用指南
Sep 09 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
python 调用win32pai 操作cmd的方法
May 28 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
Aug 01 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
Python解析命令行读取参数之argparse模块
Jul 26 Python
python多进程并发demo实例解析
Dec 13 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
Jun 04 Python
python time()的实例用法
Nov 03 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
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP长网址与短网址的实现方法
2017/10/13 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
JS模拟自动点击的简单实例
2013/08/08 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
深入理解javascript中的this
2021/02/08 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
简述Python中的进程、线程、协程
2016/03/18 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
如何查看python关键字
2021/01/17 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
文明青少年标兵事迹材料
2014/01/28 职场文书
期末自我鉴定
2014/02/02 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
单位委托书
2014/10/15 职场文书
五年级上册复习计划
2015/01/19 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
导游词之台湾阿里山
2019/10/23 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL