数据结构-顺序表的基本操作

导读:本篇文章讲解 数据结构-顺序表的基本操作,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

用列表来实现 顺序表的基本操作

"""
  用列表来实现 顺序表的基本操作
"""

class seqlist:  # 创建一个顺序表
    def __init__(self, max_space=30):
        self.max_space = max_space  # max_space  最大空间
        self.sl = max_space * [0]  # 申请一个列表数组
        self.length = 0  # 目前实际元素的个数

    """
        #   追加元素 
         1. 在后面追加元素 
    """

    def appenddata(self, data):
        if self.length == self.max_space:
            print("顺序表已经满,不能再添加元素")
        else:
            self.sl[self.length] = data
            self.length = self.length + 1

    def printdata(self):  # 遍历操作
        for i in range(self.length):
            print(self.sl[i])
        print(self.sl[i], end=' ')
        print('\n')

    """
        插入元素的判断 条件 1. 顺序表是否满了 ,2.插入的位置是否合法,合法则插入 
    """

    def insertdata(self, index, data):  # 插入元素的操作  在 index 位置插入 data  元素
        if self.length == self.max_space:
            print("顺序表满了")
        else:
            if index < 0 or index > self.length:
                print("位置不合法")
            else:
                """ 
                    如果合法开始进行元素的移动, 需要考虑到具体的细节的情况 
                """
                #  从最后一个元素进行 移动  陆续的移动通过循环语句进行移动
                i = self.length - 1
                while i >= index:
                    # 最后一个元素赋值给一个新的下标元素
                    self.sl[i + 1] = self.sl[i]
                    i = i - 1
                """ index 位置的元素位置已经空出来,则进行元素的插入"""
                self.sl[index] = data
                self.length = self.length + 1

    """
        顺序表的删除操作
        一. 按照下标或者索引进行元素的删除操作 
        1. 判断列表是否为空  判断删除元素的下标是否合法  
        2. 进行元素的删除操作 ,对删除的元素进行移动 【对后面的元素进行移动操作】
    
    """

    def deleteindex(self, index):  # 按照索引删除元素
        if self.length == 0:
            print('顺序表是空的')

        else:
            if index < 0 or index >= self.length:
                print("位置不合法")
            else:
                i = index
                while i < self.length:
                    self.sl[i] = self.sl[i + 1]
                self.length = self.length - 1

    """
         按值查找元素的操作   
         1. 进行元素遍历操作,把元素和待查找的值进行比较操作 
         2. 查找也分为两种情况, 一种情况是查找到了,进行退出操作,返回元素的下标操作 
         另一种情况是查找到元素的末尾也没有找到 
    """

    def searchdata(self, data):  # 按值来查找元素
        for i in range(self.length):
            if (self.sl[i] == data):  #
                break
        if i == self.length:
            print("没找到这个元素")
            return -1
        else:
            print("找到了")
            return i

    """
        按值进行删除元素的操作 
    """

    def deletedata(self, data):  # 按值删除元素
        i = self.searchdata(data)
        if i != -1:
            self.deleteindex(i)



s = seqlist()
num = int(input("请输入追加元素的个数: "))
for i in range(num):
    data = input("请输入追加的元素: ")
    s.appenddata(data)
s.printdata()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/77030.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!