数据结构: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;
}
相关推荐
wabs6669 小时前
关于图论【卡码网100.最大岛屿的面积的思考】
数据结构·算法·图论
yuannl1010 小时前
图的最短路径Dijkstra
数据结构
zander25811 小时前
138. 随机链表的复制
数据结构·算法·链表
过期动态12 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
来一碗刘肉面12 小时前
栈在递归中的应用
数据结构·算法
皓月斯语12 小时前
程序设计语言的特点
开发语言·数据结构·c++
邪修king12 小时前
C++ 进阶终章:异常机制与智能指针全解 —— 从错误处理到 RAII 资源管理,打通现代 C++ 的核心命脉
android·数据结构·c++
Adios79420 小时前
设置交集大小至少为2
数据结构·算法·leetcode
来一碗刘肉面1 天前
栈的应用(表达式求值)
数据结构·算法
yuannl101 天前
图的深度优先遍历DFS
数据结构