自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 数据结构C十三图

1.1图图是由顶点集合以及顶点间的关系集合组成的一种数据结构。图通常用来表示和存储具有“多对多”关系的数据,是数据结构中非常重要的一种结构。遍历:从图中某一顶点出发,并系统地访问完图中的所有顶点,且都恰好访问一次的运算操作。图是按照无方向和有方向分为无向图和有向图。图的遍历方式分为两种:深度优先遍历与广度优先遍历,二者的时间复杂度都是O(n2);运用:递归,回溯,方式:从起始点(假设是A)出发,并将点A标记好,然后再去访问与A相连,且未被访问过的顶点。一个中间的顶点(假设是B)在访问完B的所

2022-05-31 21:07:18 149

原创 数据结构C十二

1.1N皇后问题求解N皇后问题是一个经典的问题,作为回溯的经典案例,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击),有多少摆法。有递归和非递归两种实现方式,现在用递归方法。这里用一个N*N的矩阵来存储棋盘:a)算法开始, 清空棋盘,设当前行为第一行,当前列设为第一列; b)在当前行,当前列的位置上判断是否满足条件(即保证经过这一点的行,列与斜线上都没有两个皇后),若不满足,跳到第d步;c )在当前位置上满足条件的情形:在当前位置放一个皇后

2022-05-28 21:40:46 84

原创 数据结构C十一二叉树及其遍历

1.1前言二叉树:就是每个节点都只能有两个子节点的树结构。二叉树遍历:所谓遍历是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。 遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。遍历分类:前序遍历(Preorder Traversal 亦称(先序遍历))——访问根结点的操作发生在遍历其左右子树之前。中序遍历(Inorder Traversal)——访问根结点的操作发生在遍历其左右子树之中(间)。后序遍历(Postorde

2022-05-24 18:52:34 137 1

原创 数据结构C十压缩矩阵的转置

1.矩阵也就是二维数组,所以它可以采用顺序存储是来存储其中的元素。但有时矩阵的劫数很高,同时在矩阵中游很多值相同的元素,或大多数元素的值为零,这时再采用严格的顺序存储显然是很浪费空间的,因为存储零元素或许多值相同的元素是没有意义的,因此为了节省存储空间,对这类矩阵通常采用压缩存储。压缩矩阵:指为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间转置:m*n阶矩阵,第i行j列的元素为(i,j),即把m*n矩阵的行换成同序数的列得到的一个n*m矩阵为矩阵转置。2实现2.1结构体构建

2022-05-20 13:24:18 102 1

原创 数据结构C九二维数组与矩阵乘法

1.矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来2实现2.1矩阵构建 二维数组typedef struct TwowArray{ int rows; int columns; int** elements;} TwowArray, *TwowArrayPtr;.

2022-05-20 13:00:10 421 1

原创 数据结构C八队列

队列:只允许在一端进行插入,在另一端进行删除的线性表。1链队列链队列:使用链表实现的队列;具有队头指针和队尾指针,指示队列元素所在的位置。只能队尾插入元素、在队头删除元素。先进先出(First In First Out)的线性表,先进入的元素出队,后进入的元素才能出队。1.1结构体typedef struct LinkNode{ int data; LinkNode*next;}*LinkNodePtr;/**链队列*/typedef struct LinkQu.

2022-05-18 16:27:02 217

原创 数据结构C七栈及应用2

2022-05-12 14:28:32 104

原创 数据结构C六栈及应用1

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,最后一个数据被第一个读出来。栈的一个最重要的特征就是栈的插入和删除只能在栈顶进行,所以每次删除的元素都是最后进栈的元素1.1栈的定义typedef struct CharStack { int top; int data[STACK_MAX_SIZE]; //The maximum length is fi

2022-05-10 19:17:47 215

原创 数据结构C五多项式加法

链表的运用1.定义typedef struct LinkNode{ int coefficient; int exponent; struct LinkNode *next;} *LinkList, *NodePtr;2.初始化LinkList initLinkList(){ LinkList tempHeader = (LinkList)malloc(sizeof(struct LinkNode)); tempHeader->coefficient = 0; tem

2022-05-06 13:44:28 94 1

原创 数据结构C四静态链表

用数组描述的链表。这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。代码1.定义静态链表typedef struct StaticLinkedNode{ char data; int next;} *NodePtr;typedef struct StaticLinkedList{ NodePtr nodes; int* used;} *ListPtr;2.初始化链表ListPtr

2022-05-03 19:04:59 51

原创 数据结构C三双向链表

双链表是给链表中的每一个节点多加一个指针域,这个指针域将指向它的前驱,因此在双链表上,既方便查找后继,又方便查找节点的前驱。抄写并理解代码。1.双向链表的存储,建立链表。typedef struct DoubleLinkedNode{ char data; struct DoubleLinkedNode *previous; struct DoubleLinkedNode *next;}DLNode, *DLNodePtr;2.双向链表初始化DLNodePtr initLinkL

2022-05-03 18:37:07 585

原创 数据结构c二单链表

理解临摹代码1.设置单链表2.初始化3.打印单链表4.单链表取值5.插入6.删除7.测试上述操作8总函数9测试结果理解图示:

2022-04-30 00:01:25 459

原创 数据结构c学习1

对老师的代码进行理解并且临摹老师的代码#include <stdio.h>#include <malloc.h>#define LIST_MAX_LENGTH 10/*** Linear list of integers. The key is data.*/typedef struct SequentialList { int actualLength; int data[LIST_MAX_LENGTH]; //The maximum ...

2022-04-26 01:02:20 60

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除