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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
Python3实现的字典遍历操作详解
Apr 18 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
详解Python发送email的三种方式
Oct 18 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
选择python进行数据分析的理由和优势
Jun 25 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
python Jupyter运行时间实例过程解析
Dec 13 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
如何用 Python 子进程关闭 Excel 自动化中的弹窗
May 07 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 GeoIP的使用教程
2011/03/09 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
使用XHGui来测试PHP性能的教程
2015/07/03 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
php实现头像上传预览功能
2017/04/27 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
浅析return false的正确使用
2013/11/04 Javascript
Mac地址验证的javascript代码
2013/11/09 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
2016/07/07 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
django 常用orm操作详解
2017/09/13 Python
python游戏地图最短路径求解
2019/01/16 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
教导主任个人总结
2015/03/03 职场文书
信仰观后感
2015/06/03 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
python 自动刷新网页的两种方法
2021/04/20 Python
Win11软件图标固定到任务栏
2022/04/19 数码科技
Python使用pyecharts控件绘制图表
2022/06/05 Python
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技