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实现定时精度可调节的定时器
Apr 15 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
python GUI图形化编程wxpython的使用
Jul 19 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Python常用类型转换实现代码实例
Jul 28 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
Python虚拟环境virtualenv创建及使用过程图解
Dec 08 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
python OpenCV学习笔记
Mar 31 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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jquery-mobile基础属性与用法详解
2016/11/23 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
总结python实现父类调用两种方法的不同
2017/01/15 Python
Python视频爬虫实现下载头条视频功能示例
2018/05/07 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
GANT英国官方网上商店:甘特衬衫
2018/02/06 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
后勤人员自我评价怎么写
2013/09/19 职场文书
硕士研究生自我鉴定
2013/11/08 职场文书
七年级地理教学反思
2014/01/26 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
四年级评语大全
2014/04/21 职场文书
经营管理策划方案
2014/05/22 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
合作合同协议书范本
2015/01/27 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android