数据结构基础学习笔记(一)

本文介绍了数据结构的基础知识,包括逻辑结构中的线性结构和非线性结构,详细讲解了线性链表、栈、队列、树与二叉树的概念,并概述了排序计数的方法。通过对这些基本数据结构的理解,有助于提升算法设计和问题解决能力。
摘要由CSDN通过智能技术生成

数据结构基础

数据结构基础数据结构研究的三个方向:数据的逻辑结构线性结构非线性结构基本的数据结构线性链表:栈和队列树与二叉树排序计数

 

数据结构是指相互有关联的数据元素的集合。

数据结构研究的三个方向:

  1. 数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

  2. 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;

  3. 对各种数据结构进行的运算。

数据的逻辑结构

线性结构

有且只有一个开始结点和一个终端结点,且所有结点都最多只有一个直接前驱和一个直接后继。栈、队列、串、数组等都是线性结构。

非线性结构

在该类结构中至少存在一个数据元素,它具有两个或者两个以上 的前驱或后继。树、二叉树、多维数组、广义表、图、堆等。

 

基本的数据结构

集合结构:数据元素的有限集合。数据元素之间除了‘属于同一个集合’的关系之外没有其他关系。

线性结构:数据元素的有序集合。数据元素之间形成一对一的关系

树形结构:树是层次数据结构,树中数据元素之间存在一对多的关系。

图状结构:图中数据元素之间的关系是多对多的。

线性链表:

数据结构中每一个结点对应于一个存储单元,这种存储单元成为存储结点,简称结点。

结点由两部分组成:用于存储数据元素值,称为数据域;用于存放指针,称为指针域,用于指向前一个或后一个结点。

线性链表的基本运算:查找、插入、删除。

#! /usr/bin/env python
# -*- coding:utf8 -*-
​
​
class Node:
    # '创建节点'
​
    def __init__(self, data):
        self.data = data
        self.next = None
​
​
class LinkList:
    # '创建列表'
​
    def __init__(self, node):
        # '初始化列表'
        self.head = node
        self.head.next = None
        self.tail = self.head
​
    def add_node(self, node):
        # '添加节点'
        self.tail.next = node
        self.tail = self.tail.next
​
    def view(self):
        # '查看列表'
        node = self.head
        link_str = ''
        while node is not None:
            if node.next is not None:
                link_str += str(node.data) + '-->'
            else:
                link_str += str(node.data)
            node = node.next
        print('The Linklist is:' + link_str)
​
    def length(self):
        # '列表长度'
        node = self.head
        count = 1
        while node.next is not None:
            count += 1
            node = node.next
        print('The length of linklist are %d' % count)
        return count
​
    def d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值