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实现方法
Nov 18 Python
python插入数据到列表的方法
Apr 30 Python
多版本Python共存的配置方法
May 22 Python
python3对接mysql数据库实例详解
Apr 30 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
Jul 01 Python
python opencv实现证件照换底功能
Aug 19 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
python numpy--数组的组合和分割实例
Feb 24 Python
python/golang实现循环链表的示例代码
Sep 14 Python
python脚本定时发送邮件
Dec 22 Python
python实现Nao机器人的单目测距
Sep 04 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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字符串按照单词进行反转的方法
2015/03/14 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
javascript放大镜效果的简单实现
2013/12/09 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
JavaScript中for循环的使用详解
2015/06/03 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
windows下ipython的安装与使用详解
2016/10/20 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
python频繁写入文件时提速的方法
2019/06/26 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
公司活动总结范文
2014/07/01 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
软件测试专业推荐信
2014/09/18 职场文书
1000字打架检讨书
2014/11/03 职场文书
学校就业保障协议书
2019/06/24 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android