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读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python实现控制台中的进度条功能代码
Dec 22 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
Python读取JSON数据操作实例解析
May 18 Python
keras处理欠拟合和过拟合的实例讲解
May 25 Python
python实现socket简单通信的示例代码
Apr 13 Python
这样写python注释让代码更加的优雅
Jun 02 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中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
php curl的深入解析
2013/06/02 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python面向对象之继承代码详解
2018/01/29 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python API len函数操作过程解析
2020/03/05 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python如何实现邮件功能
2020/05/27 Python
Python descriptor(描述符)的实现
2020/11/15 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
法律工作求职自荐信
2013/10/31 职场文书
建筑专业自荐信范文
2014/01/05 职场文书
党日活动总结
2014/05/07 职场文书
个人学习总结范文
2015/02/15 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书