数据结构基础

本文介绍了数据结构的基础知识,包括栈、队列和链表的概念。栈遵循后进先出(LIFO)原则,常用于表达式求值等场景;队列则遵循先进先出(FIFO)原则,适用于任务调度等。链表作为非连续存储的数据结构,通过节点间的指针链接,允许高效插入和删除操作。文章还探讨了链表的头插法和尾插法,并强调理解数据结构对于编程的重要性。
摘要由CSDN通过智能技术生成

数据结构基础

数据结构的定义是:计算机存储和组织数据的方式,称为数据结构。

这里涉及了两个要点:一是存储,二是组织。

计算机把单个变量按照大小存储在内存空间里,称为存储;不同的单个变量按照某种规则放在计算机内存的不同位置上,称为组织。

列表 (list) 是最常用的数据结构之一:

计算机把列比里的变量按照其大小存储在内存空间里,这是列表的存储方式;列表的每个元素的存储空间一定连续的、相邻的,这是列表的组织方式。

总的来说,对于一个数据结构,我们既要知道它存了什,又要知道它怎么存的。

Python中的列表虽然很灵活,但有些时候过分灵活也许不是件好事。为了让数据的存储和排布符合某些特定的规则,我们需要给列表加上某些限制。这种加上限制后的列表由于特性,操作的变化变为新的数据结构,我们重点介绍 (stack)队列 (queue)

(stack)队列 (queue) 是两种基础的数据结构,其进出方式是 后进先出 LIFO(Last In First Out)先进先出 FIFO (First In First Out)

栈是一个栈不支持随即访问的列表,而是只能借助一个始终指向栈最上方的元素的指针来访问栈最上方的元素。新来的元素也只能添加到栈的最上方,同时要修改栈顶指针的指向。这就是 后进先出 的逻辑。

要想创建一个栈对象,我们需要定义一个栈类型:

class stack:
    def __init__(self, size=100):
        self.__datas = [0] * size
        self.__size = size
        self.__top = -1
"""占结构需要两个属性:一个储存信息的列表,一个指
   向栈顶的top指针,以及一个用来分配空间的size参
   数。这些属性显然应该是私有的。top 初值 -1 初
   始栈空。"""
    def isEmpty(self):
        if self.__top == -1:
            return True
        return False
        #判空方法

    def top(self):
        if self.isEmpty():
            return "Stack is empty!"
        return self.__datas[self.__top]
        #访问栈顶方法

    def push(self, data):
        self.__top += 1
        if self.__top >= self.__size:
            self.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值