3月20日课堂笔记——顺序存储,线性表

4 阅读1分钟

数据结构:是带结构的数据元素的集合。

学习内容:结构+操作

1.线性表,是一种数据结构。

2.学习内容:定义,添加,查找,删除。

要添加,删除元素,都要确保顺序关系一致。

英文字典:元素都是按照字母顺序排列的。

class Line:
    def __init__(self,max):  # 构造函数  新*
        print("Line")
        self.max = max
        self.length = 0
        self.data = [None for _ in range(self.max)]

    def insert(self,ele):
        print(f"要把元素{ele} 添加到线性表中,从第一个为空的位置加入")
        self.data[self.length] = ele
        self.length += 1

    def printAllData(self):
        for i in range(self.length):
            print(self.data[i])

line1 = Line(10)

line1.insert(3)
line1.insert(1)
line1.insert(2)

line1.printAllData()


顺序存储:


class Line:
    def __init__(self,max):  # 构造函数  新*
        print("Line")
        self.max = max
        self.length = 0
        self.data = [None for _ in range(self.max)]

    def insert(self,ele, index):
        if self.length == self.max:
            print("错误:线性表满了,不能插入")
            return
        #print(f"要把元素{ele} 添加到线性表中的下标为{index}的位置")
        if index > self.max - 1:
            print("错误:超过线性表的最大容量")
            return
        if index < 0:
            print("错误:小标不能为负数")
            return

        if index > self.length:
            print("错误:位置不合法,不能跳着添加")
            return

        #把index及之后的元素全部后移一位
        j = self.length
        while j > index:
            self.data[j] = self.data[j-1]
            j-= 1

        #把index位置的元素值为ele
        self.data[index] = ele

        #把总长度1加
        self.length += 1



    def printAllData(self):
        for i in range(self.length):
            print(self.data[i])

line1 = Line(10)
#最大下标为9

line1.insert(1,0) #把下标为0的位置,设置为1,之后的元素后移一个
line1.insert(2,0) #把下标为0的位置,设置为2,之后的元素后移一个
line1.insert(3,0) #把下标为0的位置,设置为3,之后的元素后移一个
line1.insert(4,2) #把下标为2的位置,设置为4,之后的元素后移一个

line1.printAllData()