Python数据结构之顺序表的实现代码示例

Python数据结构之顺序表的实现代码示例,第1张

概述顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存储在LOC(

顺序表即线性表的顺序存储结构。它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的。比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存储在LOC(1)+(i-1)*sizeof(ElemType)位置上,其中sizeof(ElemType)表示每一个元素所占的空间。

追加直接往列表后面添加元素,插入是将插入位置后的元素全部往后面移动一个位置,然后再将这个元素放到指定的位置,将长度加1删除是将该位置后面的元素往前移动,覆盖该元素,然后再将长度减1 

实现代码:

#!/usr/bin/python# -*- Coding: utf-8 -*-class SeqList(object):  def __init__(self,maxsize):    self.maxsize = maxsize    self.data = range(maxsize)    self.last = len(self.data) -1  def __getitem__(self,key):    if self.is_empty():      print 'seqList is empty'      return    elif key<0 or key>self.last:      print 'the given key is Error'      return    else:      return self.data[key]  def __setitem__(self,key,value):    if self.is_empty():      print 'seqList is empty'      return    elif key<0 or key>self.last:      print 'the given key is Error'      return    else:      self.data[key] = value  def __len__(self):    length = self.last + 1    return length  def getlength(self):    return self.last+1  def clear(self):    self.data = []  def is_empty(self):    if self.last == -1:      return True    else:      return False  def is_full(self):    if self.last == self.maxsize-1:      return True    else:      return False  def getelem(self,index):    if self.is_empty():      print 'seqList is empty'      return    elif index<0 or index>self.last:      print 'position is error'    else:      return self.data[index]  def getindex(self,elem):    if self.is_empty():      print 'seqlst is empty'      return    else:      for i in range(self.last):        if self.data[i]==elem:          return i  def append(self,elem):    if self.is_empty():      print 'seqList is empty'      return    else:      self.last +=1      self.data = self.data + [elem]  def insert(self,index,elem):    if self.is_empty():      print 'seqList is empty'      return    elif index<0 or index> self.last+1:      print 'postion is error'      return    elif index == self.last+1:      self.last+=1      self.data = self.data + [elem]    else:      self.data += [elem]      if index ==0:        for i in self.data[self.last::-1]:          self.data[i+1] = self.data[i]      else:        for i in self.data[self.last:index-1:-1]:          self.data[i+1] = self.data[i]      self.data[index] = elem      self.last+=1      #print self.data  def delete(self,index):    if self.is_empty():      print 'seqList is empty'      return    elif index<0 or index> self.last+1:      print 'postion is error'      return    elif index == self.last+1:      self.last -= 1      self.data =self.data[:-1]    else:      for i in self.data[:-1]:        if i >= index:          self.data[i] = self.data[i+1]        else:          pass      self.data = self.data[:-1]      self.last -= 1sl = SeqList(5)print sl.datasl.append(5)print sl.datasl.insert(6,10)print sl.datasl.delete(5)print sl.data

说明:其实python中得List 本身是支持该种数据结构的,可以直接使用。

总结

以上就是本文关于Python数据结构之顺序表的实现代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

python中实现k-means聚类算法详解

Python内存管理方式和垃圾回收算法解析

Python算法输出1-9数组形成的结果为100的所有运算式

如有不足之处,欢迎留言指出。

总结

以上是内存溢出为你收集整理的Python数据结构之顺序表的实现代码示例全部内容,希望文章能够帮你解决Python数据结构之顺序表的实现代码示例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1201266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存