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连接oracle数据库实例
Oct 17 Python
python采用django框架实现支付宝即时到帐接口
May 17 Python
python对象及面向对象技术详解
Jul 19 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python使用sqlite3模块内置数据库
May 07 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
pytorch--之halfTensor的使用详解
May 24 Python
Python基础 括号()[]{}的详解
Nov 07 Python
利用Python实现模拟登录知乎
May 25 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执行linux系统命令的常用函数使用说明
2010/04/27 PHP
如何在Ubuntu下启动Apache的Rewrite功能
2013/07/05 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
jQuery插件-jRating评分插件源码分析及使用方法
2012/12/28 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
javascript 实现map集合
2015/04/03 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
jQuery实现简单日历效果
2020/07/05 jQuery
vue实现选中效果
2020/10/07 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
python实现从web抓取文档的方法
2014/09/26 Python
python中函数传参详解
2016/07/03 Python
Python函数装饰器实现方法详解
2018/12/22 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
日本著名的服饰鞋帽综合类购物网站:MAGASEEK
2019/01/09 全球购物
美国一站式电动和手动工具商店:International Tool
2020/11/26 全球购物
百度吧主申请感言
2014/01/12 职场文书
公司中层干部的自我评价分享
2014/03/01 职场文书
质量负责人任命书
2014/06/06 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS