数据结构的基本存储结构

这学期学完数据结构,到最后自己要写的时候,最基础的结构体还是不熟悉,整理一下,放在一起

线性表

typedef struct List {
    Elemtype* elem;
    int length;//当前长度
    int listsize;//已分配空间
}list;

typedef struct {
	SElemType* base;
	SElemType* top;
	int stacksize;//已经分配的空间
}SqStack

队列

typedef int QElemType;
typedef struct QNode{
	QElemType data;
	struct QNode* next;
}QNode,*QueuePtr;//表结点
typedef struct {
	QueuePtr front;//队头指针
	QueuePtr rear;//队尾指针
}LinkQueue;

二叉树

  • 顺序存储
# define MAX_TREE_NUM 100
typedef TElemType SqBiTree[MAX_TREE_NUM];

  • 链式
typedef int TElemType;
typedef struct BiTNode{
	TElemType data;
	struct BiTNode* lchild, * rchild;
}BiTNode,BiTree;
  • BiTNode是二叉树的结点,BiTree是结点的指针,
    一棵二叉树是一个根结点的指针

  • 邻接矩阵
#define INFINITY 99999
#define MAX_VERTEX_NUM 20
typedef enum{DG,DN,UDG,UDN} GraphKind;//{有向图,有向网,无向图,无向网}
typedef int VRType;//顶点关系,即边
typedef char InfoType;
typedef struct ArcCell {
	VRType adj;
	InfoType Info;
}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//邻接矩阵
typedef char VertexType;
typedef struct {
	VertexType vexs[MAX_VERTEX_NUM];//顶点数组
	AdjMatrix arcs;//邻接矩阵
	int vexnum, arcnum;
	GraphKind kind;
}MGraph;

  • 邻接表
#define MAX_VERTEX_NUM 20
typedef char InfoType;
typedef struct ArcNode {
	int adjvex;
	struct ArcNode* nextarc;
	InfoType* Info;
}ArcNode;//邻接表的表结点
typedef char VertexType;//顶点类型
typedef struct {
	VertexType data;
	ArcNode* firstarc;
}VNode,AdjList[MAX_VERTEX_NUM];//存放顶点信息的数组
typedef struct {
	AdjList vertices;
	int vexnum, arcnum;
	int kind;
}ALGraph;/*图的所有信息*/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值