首页 > 其他分享 >黑皮书存储结构

黑皮书存储结构

时间:2023-12-19 17:55:25浏览次数:19  
标签:存储 struct int typedef 100 结构 黑皮 define

存储结构

①顺序表的存储结构

#define MAXSIZE 100
typedef struct{
    ElemType *elem;		//存储空间的基地址
    int length;
}SqList;

②单链表的存储结构

typedef struct LNode{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

③顺序栈的存储结构

#define MAXSIZE 100
typedef struct{
    SElemType *base;
    SElemType *top;
    int stacksize;		//栈可用的最大容量
}SqStack;

④链栈的存储结构

#define MAXSIZE 100
typedef struct StackNode{
    ElemType data;
    struct StackNode *next;
}StackNode,*LinkStack;

⑤队列的顺序存储结构

#define MAXSIZE 100
typedef struct{
    QElemType *base;
    int front;			//队头指针
    int rear;			//队尾指针
}SqQueue;

⑥队列的链式存储结构

//一个同时带有队头指针和队尾指针的带头结点的单链表
typedef struct QNode{	
    QElemType data;
    struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
    QueuePtr front;		//队头指针
    QueuePtr rear;		//队尾指针
}

⑦二叉树顺序存储结构

#define MAXSIZE 100
typedef TElemType SqBiTree[MAXSIZE];	//0号单元存储根节点
SqBiTree bt;

⑧二叉树链式存储结构

typedef struct BiTNode{
    TElemType data;
    struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;

⑨图的邻接矩阵存储表示

#define MaxInt 32767				//代表∞
#define MVNum 100					//最大顶点数
typedef char VerTexType;			//假设顶点的数据类型为字符型
typedef int ArcType;				//假设边的权值类型为整型
typedef struct{
    VerTexType vexs[MVNum];			//顶点表
    ArcType arcs[MVNum][MVNum];		//邻接矩阵
    int vexnum,arcnum;				//当前顶点数和边数
}AMGraph;

⑩图的邻接表存储表示

#define MVNum 100
typedef struct ArcNode{				
    int adjvex;						//该边所指顶点位置
    struct ArcNode *nextarc;		//指向下一条边的指针
    OtherInfo info;					//和边有关的信息
}ArcNode;
typedef struct VNode{
    VerTexType data;				//顶点表的数据
    ArcNode *firstarc;				//指向第一个依附于该顶点的边的指针
}VNode,AdjList [MVNum];				//全部表头结点为一个数组
typedef strutc{
	AdjList vertices;				//顶点表数组名字
    int vexnum,arcnum;				//图的当前顶点数和边数
}ALGraph;

标签:存储,struct,int,typedef,100,结构,黑皮,define
From: https://www.cnblogs.com/huininghou/p/17914359.html

相关文章

  • 6.Redis,一站式高性能存储方案
    1.Redis入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)等。Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。同时,Redis还可以将内存中的数据以快照或日志的形式保......
  • 视频监控汇聚平台/算法中台/视频集中存储EasyCVR在Linux中开启硬件探测配置后,无法启动
    智能视频监控/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上,包括城市网统管”建设、智慧工地风险预警、智慧工厂安全生产......
  • 「从ES到CK 04」Clickhouse表引擎选择和表结构设计
    导航在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:01《ElasticsearchvsClickhouse》02《Clickhouse的基础知识扫盲》03《Clickhouse多分片多副本集群部署》04《Clic......
  • 结构体写法(Struct)
    一、structstu{char*name;//姓名intnum;//学号intage;//年龄chargroup;//所在小组floatscore;//成绩}stu1;//定义结构体类型的同时定义结构体变量/**其他写法:*①/......
  • 数据结构
    数据结构有:1.数组;2.栈;3.队列;4.链表(单链表、双向链表、循环链表);5.数;6.散列表;7.堆;8.图。一、数组内存连续,可通过元素下标访问。二、栈先进后出三、队列先进先出四、链表物理存储不连续,因为存储了相邻元素的物理地址,所以逻辑上连续。五、树每个节点有零个或多个子节点;没......
  • 【面试官版】【持续更新中】融合滤波算法+数据结构+激光视觉SLAM+C++面试题汇总
    C++部分什么时候需要写虚函数、什么时候需要写纯虚函数?只继承接口为纯虚函数强调覆盖父类重写,或者父类也需要实现一定的功能,为虚函数指针传参和引用传参区别?引用传参本质上是传递原参数地址,指针传参本质还是值传递,生成拷贝指针,拷贝指针和原指针指向的为同一块内存。因此改变......
  • 【UniApp】-uni-app-pinia存储数据
    前言经过上个章节的介绍,大家可以了解到uni-app-数据缓存的基本使用方法那本章节来给大家介绍一下uni-app-pinia存储数据的基本使用方法经过我这么多篇章的介绍,我发现大家环境比较耗时,所以在今后的文章中,我会尽量减少环境的搭建如果某一篇的文章环境确实是不一样的,我会在......
  • c/c++中typedef定义结构体内成员赋初值
    写数据结构作业时遇到的问题:需要给typedef定义的结构体中的成员数组赋初值。如下:写数据结构作业时遇到的问题:需要给typedef定义的结构体中的成员数组赋初值。如下:typedefstruct{Node*nodes[maxsize];intfront,rear;}Queue;赋值方法如下:Queuenodes={{0},1,0};......
  • 数据结构之<图>的介绍
    图(Graph)的概念:在数据结构中,图是由节点(顶点)和边组成的非线性数据结构。图用于表示不同对象之间的关系,其中节点表示对象,边表示对象之间的连接或关系。1.图的基本组成元素:节点(Vertex或Node):表示图中的实体或对象。节点可以有不同的属性和值。在某些情况下,节点也被称为顶点。边(Edge):......
  • 数据结构 —— 线性表、栈、队列
    一、算法复杂度 【2011】设n是描述问题规模的非负整数,下面的程序片段时间复杂度是()x=2;while(x<n/2)x=2*x;AO(log2(n))  BO(n) CO(nlog2(n)) DO(n^2) 答案:A解析:x=2^i=n/2i=log2(n/2) 【2012】求整数n(n>=0)的阶乘的算法......