计算机内存是一个连续的存储空间
上面的一个字节正好是一行,也就是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
网上的教程