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的内建模块collections的教程
Apr 28 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python实现的文本编辑器功能示例
Jun 30 Python
Python代码实现KNN算法
Dec 20 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
使用pytorch进行图像的顺序读取方法
Jul 27 Python
python递归全排列实现方法
Aug 18 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
python实现超市商品销售管理系统
Nov 22 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
Python创建文件夹与文件的快捷方法
Dec 08 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
PHPEXCEL 使用小记
2013/01/06 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
php 使用fopen函数创建、打开文件详解及实例代码
2016/09/24 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
2016/10/28 PHP
php 浮点数比较方法详解
2017/05/05 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python类定义和类继承详解
2015/05/08 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python采集微信公众号文章
2018/12/20 Python
Python最小二乘法矩阵
2019/01/02 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Python关于反射的实例代码分享
2020/02/20 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
大学生入党自我鉴定
2013/10/31 职场文书
人力资源经理自我评价
2014/01/04 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
入股协议书范本
2014/11/01 职场文书
工程进度款催款函
2015/06/24 职场文书
公司规章制度范本
2015/08/03 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python