数据结构:1.概念及顺序表

数据结构的学习,主要是练习代码

目录

一、概念

1.概念

2.程序的效率的衡量指标

3.数据结构

4.存储结构

二、顺序表


一、概念

1.概念

  • 程序 == 数据结构 + 算法
  • 数据结构:程序操作数据对象的结构
  • 算法:程序操作数据对象的方法

3.优点

  • 合适的数据结构可以极大提升程序运行效率(时间)和内存使用(空间)。
  • 帮助程序员更抽象地思考问题,聚焦于逻辑而非细节。
  • 数据结构是学习算法、操作系统、数据库、编译原理等高级课程的基础。

2.程序的效率的衡量指标

  • 时间复杂度(函数):数据量增长与程序运行时间增长呈现的比例函数关系
    • o(c)、o(logn)、o(n)、o(nlogn)、o(n^2)、o(n^3)......o(2^n)
  • 空间复杂度(函数):数据量增长与程序空间增长呈现的比例函数关系

3.数据结构

1).逻辑结构

  • 线性结构:一对一关系
  • 树形结构:一对多关系
  • 图形结构:多对多关系

2).存储结构

  • 顺序存储
    • 访问元素方便
    • 插入、删除效率低
    • 无法利用小空间
  • 链式存储:
    • 插入、删除效率高
    • 可以利用小空间
    • 访问元素不方便
  • 增加额外空间开销
  • 索引存储
  • 散列存储

4.重点

  • 顺序表
  • 链式表
  • 顺序栈
  • 链式栈
  • 顺序队列
  • 链式队列
  • 二叉树(完全二叉树,满二叉树)
  • 哈希表
  • 常见的排序和查找算法

二、顺序表

  • 核心定义

    • 物理结构:内存地址连续

    • 逻辑结构:线性排列

    • 访问方式:通过下标/索引直接访问

  • 本质等同于数组,通过申请堆区空间存储数据,通过首地址完成对所有控件访问

  • 头文件

seqlish.h

cs 复制代码
#ifndef __SEQLIST_H__
#define __SEQLIST_H__
typedef int DataType;
extern DataType *CreateSeqlist(int len);
extern void DestorySeqlist(DataType **pparray);
#endif
  • 代码

seqlish.c

cs 复制代码
#include <stdio.h>
#include <stdlib.h>
#include "seqlist.h"
DataType *CreateSeqlist(int len)
{
    DataType *pret = NULL;
    pret = malloc(len * sizeof(DataType));
if (NULL == pret)
{
    perror("fail to malloc");
    return NULL;
}
    return pret;
}
void DestorySeqlist(DataType **pparray)
{
    free(*pparray);
    *pparray = NULL;
    return;
}
相关推荐
m0_547486661 天前
《数据结构教程》全套 PPT课件2026
数据结构
tryxr1 天前
矩阵的几种基础变换
java·数据结构·算法·矩阵
mmmmath_31 天前
LeetCode.028.找出字符串中第一个匹配项的
数据结构·算法·leetcode
All for pursuit.1 天前
【栈-4】739.每日温度
数据结构·c++·算法·leetcode
All for pursuit.1 天前
【栈-5】84.柱状图中最大的矩形
数据结构·c++·算法·leetcode
渡我白衣1 天前
HttpRequest与HttpResponse的实现
服务器·数据结构·c++·人工智能·tcp/ip·机器学习·caffe
晴天的雨.9921 天前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
淡海水2 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
Logic1012 天前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
2401_839080542 天前
C++常见八股
数据结构·c++·算法