数据结构: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;
}
相关推荐
小龙报20 小时前
【算法通关指南:算法基础篇】二分算法: 1.A-B 数对 2.烦恼的高考志愿
c语言·开发语言·数据结构·c++·vscode·算法·二分
靠沿21 小时前
【优选算法】专题九——链表
数据结构·算法·链表
叶宇燚1 天前
Java整理--数据结构篇
java·开发语言·数据结构
晚枫歌F1 天前
btree B树实现key-value存储
开发语言·数据结构
wangchen_01 天前
B树、B+树详解
数据结构·b树·哈希算法
无尽的罚坐人生1 天前
hot 100 101. 对称二叉树
数据结构·算法·leetcode
一叶落4381 天前
【LeetCode】1. 两数之和(Two Sum)— 哈希表经典题解(C语言)
数据结构·c++·算法·leetcode
m0_672703311 天前
上机练习第43天
数据结构·算法
菜菜小狗的学习笔记1 天前
数据结构(二)队列和栈
数据结构
不想看见4041 天前
Add Strings数字处理--力扣101算法题解笔记
数据结构·算法·leetcode