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模块restful使用方法实例
Dec 10 Python
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
Jul 09 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python实现统计单词出现的个数
May 28 Python
让Django支持Sql Server作后端数据库的方法
May 29 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
pyqt5 删除layout中的所有widget方法
Jun 25 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python序列化pickle模块使用详解
Mar 05 Python
Python使用pdb调试代码的技巧
May 03 Python
使用Python操作MySQL的小技巧
Sep 10 Python
scrapy在python爬虫中搭建出错的解决方法
Nov 22 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
python实现2048小游戏
2015/03/30 Python
python黑魔法之参数传递
2016/02/12 Python
python模块之re正则表达式详解
2017/02/03 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
营销学习心得体会
2014/09/12 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
慰问信范文
2015/02/14 职场文书
商务宴会祝酒词
2015/08/11 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang