数据结构(一)

hello~本人目前大四,南开大学电子本科在读,已直博计算所体系结构方向。
从EE转CS肯定需要一些基础啦,最近在从数据结构开始,在这里做一些记录,希望一年后的自己对计算机知识多一些了解吧~有疏漏的地方也请大家不吝赐教!

前两天看的是数据结构(c++语言版),清华大学邓俊辉老师的书,但感觉开头部分不甚明晰,因此今天开始看西交的ppt为主,参考书是严老师的数据结构。其中有部分c/c++知识的补充。

数据结构

1.1 数据结构

即如何表示和存储数据,包括逻辑结构(数据之间的关系)、物理结构(即存储结构)和运算。

通过数据结构,实现表示和存储数据,并对数据进行高效的操作和计算。

逻辑结构:

  • 线性表 栈和队列 数组和特殊矩阵 树和二叉树 (一对一 一对多 多对多关系)(线性结构 非线性结构)

存储结构:

  • 顺序存储结构:简单不灵活
  • 链式存储结构(需要在元素后面加一个指针):灵活但更复杂链式存储结构(需要在元素后面加一个指针):灵活但更复杂

Data_Structure = (D, S) ,D为元素的有限集,S为D上关系的有限集。

1.2 基本概念及术语

数据类型(DT):一个值的集合及定义在该集合上的一组操作
抽象数据类型(ADT):一个数学模型以及定义在其上的一组操作。

ADT 抽象数据类型名{
数据对象:<定义> // 逻辑结构
数据关系:<定义> // 逻辑结构
基本操作:<定义>
}ADT 抽象数据类型名

关于存储结构的定义:

typedef struct Student
{
int a;
}Stu; // 别名可省略

则声明时写作:

Stu stu1;

若定义时无typedef(定义类型描述),即

struct Student
{
int a;
};

则在c中声明需写作:

struct Student stu1;

c++中可直接写为:

Student stu2;

1.2.1 抽象数据类型的表示与实现

几个常见函数:

floor(x) // 返回值为小于或等于x的最大整数
ceil(x) // 返回值为大于x的最小整数
eof(文件变量) // 判断文件是否为空

预定义常量和类型:

//函数结果状态代码
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1 // 不可行
#define OVERFLOW -2

typedef:类型定义描述

typedef int Status //Status为函数类型的一种,返回值为函数结果状态编码
typedef xxx ElemType // 关于数据元素的类型定义

1.4.3 算法和算法分析

  • 正确性
  • 可读性
  • 健壮性/Robustness
  • 效率与存储量需求

时间复杂度由频度最高阶项来决定,由嵌套层数最多的循环语句中最内层语句的频度决定。
此外还有空间复杂度的分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值