数据结构 - 结构

本文是郝斌版《数据结构》的学习笔记,详细讲解了线性结构(数组、链表、栈、队列)和非线性结构(树、图)的逻辑与物理结构。阐述了数组和链表的存储方式,以及它们在栈和队列中的应用。此外,还介绍了数据结构的基本概念和算法,包括遍历、查找、排序、插入和删除等操作。
摘要由CSDN通过智能技术生成
郝斌版《数据结构》学习笔记
时间:2015.08.31 - 2015.09.05


线性结构和非线性结构
逻辑结构
        线性:数组,链表
                   栈(链表)和队列(数组,也可以用链表实现)是一种特殊的线性结构
        非线性:树,图

物理结构
        内存,是线性一维的


线性结构:

连续存储【数组】
数组:元素类型相同,大小相等。

离散存储【链表】
链表:n个节点离散分配;
            彼此通过指针相连;
            每个节点只有一个前驱节点,一个后续节点;
            首节点没有前驱节点,尾节点没有后续节点。
专业术语:首节点(第一个有效节点,存放有效数据的节点),尾节点,头节点(首节点之前的那个节点,与首节点的数据类型一样,无有效数据,不保存有效节点的个数,加 头节点方便对链表进行操作),头指针(存放头节点的地址,指向头节点的指针变量),尾指针。

通过函数对链表进行处理所需要的参数:
只需要:头指针,则可以推算出其它所参数

单链表
双链表:每一个节点有两个指针域(指向前面的,指向后面的)
循环链表:能通过任何一个节点找到其它所有的节点(后面的找到前面的)
非循环链表

算法:
        遍历
        查找
        清空
        销毁
        求长度
        排序
        删除节点
        插入节点

        
        插入:
        第一种形式:r = p->pNext; p->pNext = q; q->pNext = r.
        第二种形式:q->pNext = p->pNext; p->pNext = q;    //q->pNext表示q指针指向的p节点结构体变量中的pNext成员
        删除(指向下一节点即可,先临时定义一个指向p后面节点的指针r):
        r = p->pNext; p->pNext = p->pNext->pNext;(等同于p->pNext = r->pNext;)  free(r);    //要手动释放内存
        


线性结构的常见应用一:栈
线性结构的常见应用二:队列



数据结构:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值