2019-9-9-数据结构基本知识


layout: post
title: 数据结构基本概念总结
subtitle:
date: 2019-9-9
author: 度朝腾
header-img: img/dragon.jpg
catalog: true
tags:
- c

//数据结构基本概念
#include<iostream>
using namespace std;

/*
数据 – 程序的操作对象,用于描述客观事物
数据的特点:
可以输入到计算机
可以被计算机程序处理
数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型。如:int,float,char等等

数据项:一个数据元素由若干数据项组成
数据元素:组成数据对象的基本单位
数据对象:性质相同的数据元素的集合(类似于数组一般)

数据元素之间不是独立的,存在特定的关系,这些关系即结构
数据结构指数据对象中数据元素之间的关系
*/

//声明一个结构体类型
struct Teacher   //一种数据类型
{
    char    name[32];//数据项
    char    tile[32];//数据项
    int        age;//数据项
    char    addr[128];//数据项
};

int main()
{
    struct Teacher t1; //数据元素
    struct Teacher tArray[30]; //数据对象
    memset(&t1, 0, sizeof(t1));

    strcpy(t1.name, "name"); //数据项
    strcpy(t1.addr, "addr"); //数据项
    strcpy(t1.tile, "addr"); //数据项
    t1.age = 1;
}

一、基本概念与术语比较容易错的

  1. 数据项(类型没有要求、最小单位)->数据元素(相同性质、基本单位)->数据对象(是数据的子集)->数据
  2. 数据类型(原子类型、结构类型、抽象数据类型
  3. 抽象数据类型ADT:指一个数学模型及定义在该模型上的一组操作,抽象数据类型的定义仅仅取决于其一组逻辑特性,与其在计算机内部如何表示和实现无关,不论其内部结构如何变化,只要他的数学特性不变,都不影响其外部的使用。(更详细:在构造数据类型的基础上增加了对数据的操作,且类型的表示细节及操作的实现细节对外是不可见得。之所以说它是抽象的,是因为外部只知道它做什么,而不知道它如何做,更不知道数据的内部表示细节。这样,即使改变数据的表示和操作的实现,也不会影响程序的其他部分。抽象数据类型可达到更好的信息隐藏效果,因为它使程序不依赖于数据结构的具体实现方法,只要提供相同的操作,换用其他方法实现时,程序无需修改,这个特征对于系统的维护很有利。)
  4. 数据元素不是孤立存在的,之间存在某种关系。这种关系称之为结构数据结构就是这些存在关系的数据元素的集合。如二元组定义(D,R),其中D代表数据对象,R代表D上数据元素之间关系的集合。
  5. 多型数据结构指数据元素的类型不确定。
  6. 数据的逻辑结构当然和数据元素本身的内容和形式无关。

二、数据结构三要素的难点

  1. 宗旨:一个算法的设计取决于所选定的逻辑结构,一个算法的实现依赖于所采用的存储结构。
  2. 逻辑结构比较爱考的几个点:
    1. 集合属于非线性结构,集合之中的数据元素没有对应关系。
    2. 有序表指关键字有序的线性表,是逻辑结构。顺序表、哈希表、单链表都属于既描述逻辑关系又描述了存储结构。
    3. 数据的逻辑结构以面向实际问题的角度出发,只用抽象表法方式,独立于存储结构
    4. 存储结构就是为了把抽象的逻辑结构映射到计算机上,不能独立于逻辑结构存在。
    5. 逻辑结构并不会唯一决定存储结构,解决方法当然可以不一样啦!
  3. 存储结构比较爱考的几个点:
    1. 随机存取:主要在取,想取哪可以直接获得。
    2. 随机存储:主要在存,不要求逻辑相邻的元素在物理地址的映射也相邻。
    3. 顺序存取:主要在取,必须先访问前置元素。
    4. 顺序存储:主要在存,要求逻辑相邻的元素在物理地址的映射也相邻。
    5. 链接存储的特点是利用指针来表示数据元素之间的逻辑关系。
    6. 散列存储(哈希存储)无法反映数据元素之间的逻辑关系(集合)。
  4. 数据运算:定义针对逻辑结构,实现针对存储结构。

三、算法与算法评价

  1. 严奶奶钦定,算法优劣与所用计算机无关,但与算法描述的语言有关,实现语言级别越高,执行效率越低
  2. 时间复杂度没有O( i )这种描述。
  3. 渐近时间复杂度就是时间复杂度的别称。
  4. 注意算法的五大基本特性和评判优良算法的四大特性是不同的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值