第五周day3

学生成绩管理系统项目

完善后更新

(16条消息) 学生管理系统,最初版本资源-CSDN文库

一、什么是数据结构

 1、数据结构的起源

    1968年,美国高德纳教授,《计算机程序设计艺术》第一卷《基本算法》出版,开创了数据结构与算法的先河

    数据结构是一门研究之间关系和操作的学科,而非计算方法

    数据结构+算法=程序 由沃斯提出,凭借该论点获得图灵奖,这句话揭示了程序的本质

2、数据结构的基本概念

    数据:所有能够输入到计算机中,能被程序所处理的能描述客观事物特征的符号

    数据项:有独立含义的数据的最小单位,也叫数据域、域(类似于结构体成员)

    数据元素:组成数据的,有一定含义的基本单位,也叫做结点、节点、记录(类似于结构体)

        一个数据元素由若干个数据项组成

    数据结构:相互之间存在一种或多种特定关系的数据元素的集合

    算法:数据结构具备的某些功能,能够解决某种特定问题的方法

3、数据结构要研究的三个方面

    数据的逻辑结构

    数据的存储结构(物理结构)

    数据结构的运算

二、逻辑结构和存储结构

    数据的逻辑结构:

        集合:数据元素同属于一个集体,但是元素之间没有任何关系

        线性结构(表):数据元素之间存在一对一的关系

        树型结构(树):数据元素之间存在一对多的关系

        图型结构(图):数据元素之间存在多对多的关系

    数据的物理结构:

        顺序结构:数据元素存储在连续的内存中,用数据元素的相对位置来表示之间的关系

            优点:支持随机访问、访问效率高、适合查找数据数据

            缺点:对内存要求高,空间利用率低,插入、删除麻烦

        链式结构:数据元素存储在彼此相互独立的内存空间中,每个独立的数据元素称为节点,每个节点中增加一个数据项用于存储其他节点的地址,用于表示数据节点之间的关系

            优点:对内存要求低,空间利用率高,插入、删除方便

            缺点:不支持随机访问,只能从前到尾逐个访问

    逻辑结构和物理结构的关系:

        表 顺序、链式

        树 链式、顺序

        图 顺序+链式、顺序

        每种逻辑结构采用什么存储结构没有明确规定,通常是根据实现的难度以及空间、时间方面的要求,来选择最适合的物理结构

三、数据结构的运算

    1、建立数据结构     create creat

    2、销毁数据结构     destroy

    3、清空数据结构     clean

    4、插入元素         insert add

    5、删除元素         delete

    6、访问元素         access

    7、修改元素         modify

    8、查询元素         query

    9、数据结构排序     sort

    10、遍历数据结构    show print ergodic

四、顺序表和链式表的实现

    顺序表:

        数据项:

            储存连续元素的内存首地址

            表的容量

            元素的数量

        运算:

            创建、销毁、清空、插入、删除、访问、查询、修改、排序、遍历

        注意:

            1、从始至终保持元素的连续性

            2、不能越界

        优点:支持随机访问,修改、访问、排序效率高,不容易产生内存碎片

        缺点:对内存要求高,插入、删除不方便效率低

   

    链式表list:

        每个节点Node数据项:

            数据域:可以是若干个任意类型的数据项

            指针域:指向下一个节点

        把若干个节点通过指针域连接在一起就形成了链式表

        不带头结点的链式表:

            第一个节点的数据域存储的是有效数据的链表

            缺点:

                头插入节点时,会修改指向第一节点的指针,参数就需要传递二级指针

                删除节点时,需要分两种情况:1、待删除的是第一个节点时,也会修改指向第一个节点的指针,就需要传递二级指针 2、待删除的不是第一个节点时,就正常删除

        带头结点的链式表:

            第一个节点的数据域不用于存储有效数据的链表,该头结点专门用于指向第一个有效数据的链表

            优点:无论是否头插入还是头删除,头节点永远不变,变的只是头节点的next,所以不用传递二级指针,也不额外处理头删除

            缺点:额外多一个头节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值