数据结构
文章平均质量分 82
数据结构知识整理储备
Black_Me_Bo
最长的路也有尽头,最黑暗的夜晚也会迎接清晨。
展开
-
07- 图
07-图 图的逻辑结构 图的存储结构 顺序存储结构(有向图为例) 行标代表起点,列标代表终点,表格中的值代表有无路径 行标代表起点,列标代表终点 ,表格中值为权值,没有权值的,存储一个无穷大的数 邻接矩阵 //邻接矩阵的结构型定义 typedef struct{ int no; //顶点编号 char info; //顶点其他信息,一般默认char型 }VertexType; //顶点类型 //图的定义 typedef struct{ int edges[maxSize原创 2022-03-26 22:06:48 · 305 阅读 · 0 评论 -
09-查找
09-查找 顺序查找法、折半查找法、分块查找法 顺序查找法 //顺序表顺序查找法 int Search(int a[],int n,int k){ int i; for(i=0;i<=n;i++){ if(a[i]==k) return i; } return -1; } //链表顺序查找法 LNode *Search(LNode *head,int key){ LNode *p=head->next; while(p!=NULL){ if(p->data=原创 2021-11-28 20:58:03 · 833 阅读 · 0 评论 -
08-排序
08-内部排序 插入排序 直接插入排序 **思想:**把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。 //直接插入排序 void insertSort(int arr[],int n){ //待排关键字存储在数组arr中,个数为n int temp,i,j; for(i=1;i<n;i++){ temp=arr[i原创 2021-11-24 21:02:33 · 280 阅读 · 0 评论 -
07-(图)
07-图 图的逻辑结构 图的存储结构 顺序存储结构(有向图为例) 行标代表起点,列标代表终点,表格中的值代表有无路径 行标代表起点,列标代表终点 ,表格中值为权值,没有权值的,存储一个无穷大的数 邻接矩阵 //邻接矩阵的结构型定义 typedef struct{ int no; //顶点编号 char info; //顶点其他信息,一般默认char型 }VertexType; //顶点类型 //图的定义 typedef struct{ int edges[maxSize原创 2021-11-20 23:09:01 · 754 阅读 · 0 评论 -
06-树(tree)
06-树 基本概念 **结点的度:**结点拥有的分支个数(A1的度为3); **树的度:**树中各结点度的最大值(上树度为3); **叶子结点:**度为0的结点(如A3,A4,A5,A6,A7); **孩子:**A2,A3,A4为A1的孩子; **双亲:**A2,A3,A4的双亲为A1; **祖先:**从根到某结点的路径上的所有结点(A1,A2为A5的结点); 子孙:以某结点为根的的子树中的所有结点,都是该结点的子孙(A2 ~ A6为A1的子孙); **兄弟:**同一个双亲的孩子之间互为兄弟(A2,A3,原创 2021-11-18 22:31:25 · 705 阅读 · 0 评论 -
05-数组、矩阵、广义表
05-数组、矩阵、广义表 数组 一维数组 (a0,a1,…an) dataType a[n]; //dataType为数据类型,如int型 二维数组 [(a0,0,a0,1,…a0,n-1)、 (a1,0,a1,1,…a1,n-1)、 …、 (am-1,0,am-1,1,…a1,n-1)、 ] dataType a[m][n]; //dataType为数据类型,如int型,m行n列 行优先存储和列优先存储 行优先即先存满一行在存储下一行,列优先即先存满一列在存储下一列。 行优先存储如下图: 列优先存储原创 2021-11-18 21:46:13 · 158 阅读 · 0 评论 -
04-串的模式匹配
04-串的模式匹配 串-基础 串的顺序存储结构 定长的存储结构 typedef struct{ char str[maxSize+1]; int length; }Str; maxSize为已经定义的常量,表示串的最大长度; str数组长度定义为maxSize+1,是因为多出一个’\0’作为结束标记。 变长的存储结构 typedef struct{ char *ch; int length; }Str; Eg: Str S; S.length = L;//L表示串长度 S.ch = (char*原创 2021-11-18 21:43:32 · 710 阅读 · 0 评论 -
03-栈和队列
03-栈和队列 栈 链栈 LNode *head = (LNode*)malloc(sizeof(LNode)); head->next = NULL; LNode *top = NULL; //元素入栈 top = (LNode*)malloc(sizeof(LNode)); top->next = NULL; top->data = 'A'; top->next = head->next; head->next = top; //元素出栈 x = top->原创 2021-11-18 21:23:30 · 100 阅读 · 0 评论 -
02-线性表
02-线性表 概念 线性表是具有相同特性数据元素的有限序列 线性表的逻辑结构 相同特性 把一类事物归类,方便批量处理 typedef struct{ char* name;//char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确。 int IDNumber; float height; }Human; 有限 表中元素个数为n,n无限大,n可以为0 序列 表中元素排成一列,体现了一对一的逻辑特性(每个元素有则仅有一个前驱和后继) 线性表的存储结构原创 2021-11-17 20:39:22 · 370 阅读 · 0 评论 -
01-基础篇
01-基础篇 编程语言基础 变量类型-指针 int *p=&a;//指针p存储了a的地址 int b=*p;//取得指针p所指变量中的值 NULL 不指向任何地址的特殊标记,值为0,初始化指针常用 int *p=NULL; 变量类型-结构体 typedef struct{ int a; float b; ... }结构体名; typedef struct 结构体名{ int a; float b; struct 结构体名 *d; ... }结构体名; 函数 引用型定义 /*调用g原创 2021-11-15 17:31:13 · 659 阅读 · 0 评论