数据结构知识框架图

2024-06-15 09:08

本文主要是介绍数据结构知识框架图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


数据结构描述:

#define MAX 50
typedef int ElemType;//线性表:顺序 
typedef struct
{//表中数据个数 int count;ElemType data[MAX];
}ArrayList;//线性表:链式,带头节点 
typedef struct Node
{ElemType data;struct Node* next;
}LinkList;//栈:顺序 
typedef struct 
{//int count; //栈中元素的个数 int top;   //栈顶的index,栈空时为-1 ElemType data[MAX];
}SqStack;//栈:链式,不要头节点,直接在链表头部进行操作 
typedef struct Node
{ElemType data;struct Node* next;
}LiStack;//队列:顺序,采用循环数组,空出一个不放元素/设置一个flag表示是否队满/记录队列中元素个数 
typedef struct 
{//int count; //队列中元素的个数 int front,rear;   //头指针和尾指针 ElemType data[MAX];
}SqQueue;//队列:链式,最好使用循环链表 
typedef struct 
{LinkNode* first,* last;}LiQueue;//二叉树:孩子兄弟表示法 
typedef struct Node
{struct Node* lchild;struct Node* rchild;ElemType data;
}BTree;//图: 
/*
邻接矩阵:
1.无向图的邻接矩阵是对称矩阵,可以只存三角矩阵
2.不带权的有向图的邻接矩阵是稀疏矩阵,可以用三元组标识
3.无向图:邻接矩阵的第i行非0元素的个数是第i个顶点的度(对于有向图,是出度)
4.易于确定顶点间是否有边,但是确定总边数时,要按行和列进行扫描,复杂。 
*/ 
typedef struct 
{int no;  //定点编号 char* info; //顶点其他信息 
} VertexType;  //顶点类型typedef struct 
{int edges[MAX][MAX];   	//邻接矩阵的边数组 int n,e;			  	//顶点数,边数 VertexType vxs[MAX];	//存放顶点信息 
} MGraph;//顺序分配与链式分配的结合,邻接表 
/*
邻接表:
1.表示不唯一
2.n,e的无向图需要存储n个顶点和2*e个边,对于稀疏图,邻接表更省空间
3.第i个链表的长度是顶点i的度。 
4.有向图中只存储了以顶点为起点的边,不宜找到指向该顶点的边,可以设计逆邻接表,保存指向该顶点的边。 
*/ 
typedef struct ANode
{int adjvex;				///该边的终点位置 struct ANode* nextarc;	//指向下一条边的指针 char* info;				//边的信息 
} ArcNode;typedef struct VNode
{char* data;         //顶点信息 ArcNode* firstarc;  //指向第一条边 
}VNode;typedef VNode AdjList[MAX];
typedef struct 
{AdjList adjlist;  	//邻接表 int n,e; 			//顶点数,边数
} ALGraph; //并查集
typedef struct node 
{int data;   //对应此人的编号 int rank;   //节点对应的秩 int parent; //节点对应的双亲节点 
} UFSTree;//哈夫曼树:其实是一种贪心思想,每次选最小的两个构成一个根 
typedef struct{char data;double weight;int parent;int lchild;int rchild;
}HTNode;


这篇关于数据结构知识框架图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063019

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

浙大数据结构:树的定义与操作

四种遍历 #include<iostream>#include<queue>using namespace std;typedef struct treenode *BinTree;typedef BinTree position;typedef int ElementType;struct treenode{ElementType data;BinTree left;BinTre

Python 内置的一些数据结构

文章目录 1. 列表 (List)2. 元组 (Tuple)3. 字典 (Dictionary)4. 集合 (Set)5. 字符串 (String) Python 提供了几种内置的数据结构来存储和操作数据,每种都有其独特的特点和用途。下面是一些常用的数据结构及其简要说明: 1. 列表 (List) 列表是一种可变的有序集合,可以存放任意类型的数据。列表中的元素可以通过索

【Python知识宝库】上下文管理器与with语句:资源管理的优雅方式

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、什么是上下文管理器?二、上下文管理器的实现三、使用内置上下文管理器四、使用`contextlib`模块五、总结 前言 在Python编程中,资源管理是一个重要的主题,尤其是在处理文件、网络连接和数据库