Python实现顺序表
计算机内存是一个连续的存储空间
上面的一个字节正好是一行,也就是8位。a=1占了4个存储单位,不同类型,占的存储单元不一样,如下所示:
代码测试如下:
#创建顺序表 class Sequence_Table(): #初始化 def __init__(self): self.date = [None]*100 #占位了100个 #print(type(self.date)) #<class 'list'> self.length = 0 #判断占位是否满了 def isFull(self): if self.length>100: print("该顺序表已满,无法添加元素") return 1 else: return 0 #按下标索引查找 def selectByIndex(self,index): if index >=0 and index<=self.length-1: return self.date[index] else: print("你输入的下标不对,请重新输入\n") return 0 #按元素查下标 def selectByNum(self,ele): isContain = 0 for i in range(0,self.length): if self.date[i] == ele: isContain = 1 print("你查找元素的下标是%d\n"%i) if isContain == 0: print("没有你要的数据") #追加元素 def addNum(self,num): if self.isFull() == 0: self.date[self.length] = num self.length += 1 #打印顺序表 def printAllNum(self): for i in range(self.length): print("a[%s]=%s"% (i,self.date[i]),end=" ") print("\n") #按下标插入数据 保序的元素插入 def insertNumByIndex(self,num,index): if index<0 and index>self.length: return 0 self.length+=1 #从最后倒序到插入位置index(不包括下标index)需要将元素后移。 for i in range(self.length-1,index,-1): temp = self.date[i] self.date[i] = self.date[i-1] self.date[i-1] = temp self.date[index] = num return 1 #按下标删除元素 保序的元素删除 def deleteNumByIndex(self,index): if self.length <=0: print("该顺序表内没有数据,不用删除!") # 从index位置到最后将元素后移,保序的元素删除 for i in range(index,self.length-1): temp = self.date[i] self.date[i] = self.date[i + 1] self.date[i+1] = temp self.date[self.length-1] = 0 #删除一个最后的元素赋值为0 self.length -= 1 #删除一个元素总长度减1 def main(): #创建顺序表对象 seq_t = Sequence_Table() #插入3个元素 seq_t.addNum(1) seq_t.addNum(2) seq_t.addNum(3) #打印验证 seq_t.printAllNum() #按照索引查找 num = seq_t.selectByIndex(2) print("你要查找的数据是%d\n" % num) #按照索引插入数据 seq_t.insertNumByIndex(4,1) seq_t.printAllNum() #按照数字查下标 seq_t.selectByNum(4) #删除数据 seq_t.deleteNumByIndex(1) seq_t.printAllNum() if __name__ == "__main__": main() 参考资料: https://www.cnblogs.com/Se7eN-HOU/p/11086749.html
网上的教程