数据结构基础知识

数据结构基础知识
1.1 什么是数据结构
数据结构就是数据的逻辑结构以及存储操作 (类似数据的运算)

数据结构就教会你一件事:如何更有效的存储数据

1.2 数据
数据:不再是单纯的数字,而是类似于集合的概念。

数据元素:是数据的基本单位,由若干个数据项组成。

数据项:数据的最小单位,描述数据元素的有用的信息。

数据元素又叫节点

例如:

计算机处理的对象(数据)已不再是单纯的数值:

图书管理中的数据,如下表所列:

数据:图书

数据元素:每一本书

数据项:编号、书名、作者、出版社等

1.3 逻辑结构
数据元素并不是孤立存在的,它们之间存在着某种关系(或联系、结构)。元素和元素之间的关系:

线性关系
线性结构 ==> 一对一 ==> 线性表:顺序表、链表、栈、队列

层次关系
树形结构 ==> 一对多 ==> 树:二叉树

网状关系
图状结构 ==> 多对多 ==> 图

例题:

田径比赛的时间安排问题

1.4 存储结构
数据的逻辑结构在计算机中的具体实现(数据的运算)

1.4.1 顺序存储
特点:内存连续、随机存取、每个元素占用较少

实现:数组

1.4.2 链式存储
通过指针存储

特点:内存不连续,通过指针实现

链表实现:

结构体:

#include <stdio.h>
 
struct node
{
    int data;          //数据域:存放节点中要保存的数据
    struct node *next; //指针域:保存下一个节点的地址,也就是说指向了下一个节点 (类型为自身结构体指针)
};
 
int main()
{
    //定义三个节点
    struct node A = {1, NULL}; //定义结构体变量的同时给每个成员赋值
    struct node B = {2, NULL};
    struct node C = {3, NULL};
 
    // struct node D;   //先定义结构体变量,再单独给其中成员赋值
    // D.data=4;
    // D.next=NULL;
 
    //连接三个节点
    A.next = &B; //连接A和B节点,通过让A中的指针域保存B的地址
    B.next = &C;
 
    printf("%d\n", A.data);
    printf("%d\n", A.next->data);
    printf("%d\n", A.next->next->data);
}


1.4.3 索引存储结构
在存储数据的同时,建立一个附加的索引表。

也就是索引存储结构 = 索引表 + 存数据的文件

可以提高查找速度,特点检索速度快,但是占用内存多,删除数据文件要及时更改索引表。

1.4.4 散列存储
数据存储按照和关键码之间的关系进行存取。关系由自己决定,比如关键码是key, 存储位置也就是关系是key+1。获取关键数据,通过元素的关键码方法的返回值来获取。

存的时候按关系存

取的时候按关系取

1.5 操作
增删改查

算法基础知识
2.1 什么是算法
算法就是解决问题的思想方法&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值