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 相关文章推荐
简介Django中内置的一些中间件
Jul 24 Python
python实现用户登录系统
May 21 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 Python
《Python学习手册》学习总结
Jan 17 Python
对python中的高效迭代器函数详解
Oct 18 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
Python字典的基础操作
Nov 01 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
各种快递查询--Api接口
2016/04/26 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
js 表格隔行颜色
2009/12/02 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
Python中的推导式使用详解
2015/06/03 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
论群众路线学习笔记
2014/11/06 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
杨善洲观后感
2015/06/04 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python