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 MD5文件生成码
Jan 12 Python
Python中zfill()方法的使用教程
May 20 Python
django1.11.1 models 数据库同步方法
May 30 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
Mar 11 Python
Django的Modelforms用法简介
Jul 27 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
python实现TCP文件传输
Mar 20 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
python实现双人五子棋(终端版)
Dec 30 Python
Django使用channels + websocket打造在线聊天室
May 20 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 CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
python创建进程fork用法
2015/06/04 Python
开始着手第一个Django项目
2015/07/15 Python
详解Django中Request对象的相关用法
2015/07/17 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
Python 实现选择排序的算法步骤
2018/04/22 Python
python对日志进行处理的实例代码
2018/10/06 Python
详解Python学习之安装pandas
2019/04/16 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
Europcar比利时:租车
2019/08/26 全球购物
会议接待欢迎词
2014/01/12 职场文书
两只小狮子教学反思
2014/02/05 职场文书
爱心捐款倡议书
2014/04/14 职场文书
干部鉴定材料
2014/05/18 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server