数据结构实现数组

  1. 数据和列表的区别
  2. 使用python实现数组

昨天在交流的时候发现数据结构还是有必要看一下,注意:是数据结构和算法的数据结构。不是基础的数据结构
目前需要学习的数据结构有:

* 抽象数据类型 ADT,面向对象编程
* 数组和列表
* 链表,高级链表。双链表,循环双端链表
* 队列,双端队列,循环双端队列
* 栈,栈溢出
* 算法分析,时间复杂度 大O 表示法
* 哈希表,散列冲突
* 字典
* 集合
* 递归
* 查找:线性查找和二分查找
* 基本排序算法
* 高级排序算法: 归并排序、堆排序、快排
* 树,二叉树
* 图,dfs 和 bfs
* python 内置常用数据结构和算法的使用。list, dict, set, collections 模块,heapq 模块
* 面试笔试常考算法

数据和列表的区别

数组:
数组是一个容器,它可以容纳一定数量的项目,这些项目是相同的类型。 大部分数据结构都使用数组来实现它们的算法。 以下是理解数组(Array)概念的重要术语。
元素 - 存储在数组中的每个项目称为元素。索引 - 数组中元素的每个位置都有一个数字索引,用于标识元素。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/python/py_data_structure/python_arrays.html

列表:
列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是,列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字,字符串,数组,字典等甚至是列表类型。

数组和列表的区别为:数组只能放一个类型的数据,列表能放不同类型的数据

使用python实现数组

虽然自带的Array的模块能实现数组,但是还是跟着文章走了一手
参考链接:https://blog.csdn.net/Tonywu2018/article/details/88819424

class Array(object):
    def __init__(self,capacity,fillvalue=None):
        self.items=list()
        for count in range(capacity):
            self.items.append(fillvalue)


    def editarray(self,index):
        if index+1>int(len(self.items)):
            #当当前索引下位标识超过数组长度自动添加数组长度
            temp=Array(index+1)
            for p in range(0,len(self.items)):
                temp.__setitem__(p,self.items[p])
            self.items=temp
            del temp
            return True
        else:
            return False


    def __len__(self):
        #返回数组长度
        return len(self.items)
    def __str__(self):
        #返回str类型的数组
        return str(self.items)
    def __iter__(self):
        #返回遍历好的数组
        return iter(self.items)
    def __getitem__(self, index):
        #通过索引获取数组中的值
        return self.items[index]
    def __setitem__(self, index, newItem):
        #替换指定位置的值
        self.editarray(index)
        self.items[index]=newItem
        return self.items


    def __delitem__(self, key):
        #删除数组指定下标
        del self.items[key]
        return self.items
    def __add__(self, value):
        #数据末尾添加
        calc=0
        for k in self.items:
            if len(str(k))!=0:
                calc+=1
            else:
                break


        self.__setitem__(calc,value)


if __name__ == '__main__':
    a=Array(6)
    for i in range(7):
        a[i]=i
    a.__delitem__(-1)
    for x in a.__iter__():
        print(x,end='')
    a.__setitem__(0,9)
    print(a.__str__())
    a.__add__(101)
    print(a.__str__())

最终结果


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:数据结构实现数组

本文作者:九世

发布时间:2020-12-29, 17:50:25

最后更新:2020-12-29, 17:58:22

原始链接:http://jiushill.github.io/posts/57421f1d.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录