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中的25个隐藏特性
Mar 30 Python
python uuid模块使用实例
Apr 08 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
详解Python读取配置文件模块ConfigParser
May 11 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
Mar 13 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
PYTHON基础-时间日期处理小结
May 05 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python字符串格式化输出代码实例
Nov 22 Python
python process模块的使用简介
May 14 Python
Python中的datetime包与time包包和模块详情
Feb 28 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使用flock实现文件加锁的方法
2015/07/01 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
js实现楼层导航功能
2017/02/23 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
vue interceptor 使用教程实例详解
2018/09/13 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
vue登录注册实例详解
2019/09/14 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Python交换变量
2008/09/06 Python
画pytorch模型图,以及参数计算的方法
2019/08/17 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
Belvilla法国:休闲度假房屋出租
2020/10/03 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
大三在校生电子商务求职信
2013/10/29 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
爱牙日活动总结
2014/08/29 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
英语教师个人工作总结
2015/02/09 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
入团申请书格式
2019/06/20 职场文书
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS
MYSQL 表的全面总结
2021/11/11 MySQL
方法汇总:Python 安装第三方库常用
2022/04/26 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle