python实现顺序表的简单代码


Posted in Python onSeptember 28, 2018

 顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存储在LOC(1)+(i-1)*sizeof(ElemType)位置上,其中sizeof(ElemType)表示每一个元素所占的空间。

python实现顺序表的简单代码

下面是顺序表的python实现:

#coding:utf-8
 
'''
author:xzfreewind
'''
 
class SeqList(object):
 def __init__(self,max=10):
  self.max = max  #默认顺序表最多容纳10个元素
  #初始化顺序表数组
  self.num = 0
  self.date = [None] * self.max
 
 def is_empty(self):  #判定线性表是否为空
  return self.num is 0
 
 def is_full(self):  #判定线性表是否全满
  return self.num is self.max
 
 #获取线性表种某一位置的元素
 def __getitem__(self, i):
  if not isinstance(i,int): #如果i不为int型,则判定输入有误,即Type错误
   raise TypeError
  if 0<= i < self.num: #如果位置i满足条件,即在元素个数的范围内,则返回相对应的元素值,否则,超出索引,返回IndexError
   return self.date[i]
  else:
   raise IndexError
 
 #修改线性表种某一位置的元素
 def __setitem__(self, key, value):
  if not isinstance(key,int): #如果key不为int型,则判定输入有误,即Type错误
   raise TypeError
  if 0<= key <self.num:  #如果位置key满足条件,即在元素个数的范围内,则返回相对应的元素值,否则,超出索引,返回IndexError
   self.date[key] = value
  else:
   raise IndexError
 #按值查找元素的位置
 def getLoc(self,value):
  n = 0
  for j in range(self.num):
   if self.date[j] == value:
    return j
  if j == self.num:
   return -1  #如果遍历顺序表还未找到value值相同的元素,则返回-1表示顺序表种没有value值的元素
 
 #统计线性表中元素的个数
 def Count(self):
  return self.num
 
 #表末尾插入操作
 def appendLast(self,value):
  if self.num >= self.max:
   print 'The list is full'
   return
  else:
   self.date[self.num] = value
   self.num += 1
 
 #表任意位置插入操作:
 def insert(self,i,value):
  if not isinstance(i,int):
   raise TypeError
  if i < 0 and i > self.num:
   raise IndexError
  for j in range(self.num,i,-1):
   self.date[j] = self.date[j-1]
  self.date[i] = value
  self.num += 1
 
 
 #删除某一位置的操作
 def remove(self,i):
  if not isinstance(i,int):
   raise TypeError
  if i < 0 and i >=self.num:
   raise IndexError
  for j in range(i,self.num):
   self.date[j] = self.date[j+1]
  self.num -= 1
 
 #输出操作
 def printList(self):
  for i in range(0,self.num):
   print self.date[i]
 
 #销毁操作
 def destroy(self):
  self.__init__()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(三):socket网络服务器
Jun 09 Python
Python检测网站链接是否已存在
Apr 07 Python
python实现按行切分文本文件的方法
Apr 18 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
python基础教程之匿名函数lambda
Jan 17 Python
Python中防止sql注入的方法详解
Feb 25 Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
python 读取二进制 显示图片案例
Apr 24 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
linux安装Python3.4.2的操作方法
Sep 28 #Python
python求质数的3种方法
Sep 28 #Python
python数据结构学习之实现线性表的顺序
Sep 28 #Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 #Python
使用Python处理BAM的方法
Sep 28 #Python
python版本单链表实现代码
Sep 28 #Python
python实现反转部分单向链表
Sep 27 #Python
You might like
php db类库进行数据库操作
2009/03/19 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
js实现数组内数据的上移和下移的实例
2017/11/14 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python实现多线程端口扫描
2019/08/31 Python
python 画条形图(柱状图)实例
2020/04/24 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
时尚、社区、科技:SEVENSTORE
2019/04/26 全球购物
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
电气工程自动化求职信
2014/03/14 职场文书
校园广播站开场白
2015/06/01 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
大学生创业计划书
2019/06/24 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书