- 博客(48)
- 收藏
- 关注
原创 Cmake使用
源文件到可执行文件:预编译 -> 编译 -> 汇编 -> 链接。命令行生成libhello.so。命令行使用libhello.so。因为会直接去找默认动态库的位置。
2023-04-21 09:12:40
144
原创 物联网学习笔记-day01
C语言:typedef关键字:给数据类型起别名比如:typedef ARR[5];ARR arr;//定义了一个长度为5的数组;数据类型:int,unsigned:有符号数和无符号数相加,会先将有符号数转换为无符号数;char,short本身字节数过小,很容易溢出,所以只要参加运算,都会将自身转换为int;强制类型转换,只是当前语句有效左移运算符:<< 左边丢弃,右边补0;右移运算符: >> :有符号数:正数:右边丢弃,左边补0负数:右边丢
2021-03-26 18:41:57
102
原创 C++之const修饰指针
1.const修饰指针-常量指针const int *p = &a;*p = 20; //错误,指针指向的值不能修改;p = &b; //正确,指针指向可以改;2.指针常量int * const p = &a;*p = 20; //正确,指针指向的值可以改;p = &b; //错误,指针指向不可以改;3.指向和指向的值都不可以改co......
2020-05-05 22:46:46
138
原创 数据结构与算法之普里姆算法
思想:选取图中任意一个顶点,把它看成一棵树,并在与此树相接的边中选取一个权值最小的边,并将与这条边相接的另一个顶点也纳入树中,得到了一颗有两个顶点的树,以此类推,知道访问完图中所有的顶点并纳入树中为止;普里姆算法构造最小生成树的过程中:需要构造两个数组vset[ ]和lowcost[ ] 。vset[ i ] = 1表示顶点 i 已经被纳入树中,vset[ i ] = 0表示顶点 i 还未被纳...
2020-04-17 23:15:13
331
原创 数据结构与算法之广度优先遍历
类似于树的层次遍历,给定起始顶点v,然后选取与v相连的顶点w1,w2……wn进行访问,再依次访问w1,w2……wn的所有邻接节点,直到所有节点被访问完;void BFS(AGraph *G, int v, int visit[maxsize]){ ArcNode *p; int que[maxsize],front = 0,rear = 0; //定义队列的简单写法; int j; ...
2020-04-16 23:05:15
183
原创 C语言之空指针和野指针
空指针:没有存储任何内存地址的指针为空指针(指向编号为0的指针)该指针是不可以访问的int *p = NULL;野指针:指向非法内存的指针,该指针是不可以访问的int *p = 0x10440;...
2020-04-16 22:22:30
251
原创 C语言之内存四区
在C语言中代码是放在内存中执行的,总共有四个区:代码区,数据区,堆区,栈区;栈区:由编译器自动分配释放,比如函数中的参数值和局部变量:void a(int x. int y){ int z;}a,b,c都是都是放在栈区的,函数执行完后将自动释放;堆区:一般由程序员分配释放(比如malloc()函数),若程序员不释放,则可能在程序结束时由系统自动回收;char *src;sr.........
2020-04-16 21:54:45
554
原创 数据结构之图的存储结构
1.邻接矩阵用二维数组表示A[ i ][ j ] = 1,表示 i 和 j 之间存在边或弧,i 与 j邻接;A[ i ][ j ] = 0,表示 i 和 j 不邻接;struct VertexType{ int no; //顶点编号; char info; //顶点其他信息,默认为char;};struct MGraph{ int edges[maxSize][maxSi...
2020-04-14 22:14:12
131
原创 数据结构与算法之中序线索二叉树
对线索二叉树的结构定义如下:struct Node{ int data; int ltag,rtag; //线索标记; Node* lchild; Node* rchild;};如果ltag = 0,则 lchild为指针,指向节点的左孩子,若ltag = 1,则 lchild为线索,指向节点的直接前驱;如果rtag = 0,则 rchild为指针,指向节点的右孩子,若rta...
2020-04-11 23:06:12
281
原创 数据结构之二叉树的遍历
先序遍历:void preorder(node* root){ if(root != NULL) { Visit(root); //假设Visit()函数已经定义; preorder(root->lchild); preorder(root->rchild); }}中序遍历:void inorder(node* root){ if(root !=...
2020-04-08 17:18:13
161
原创 数据结构之二分查找
二分查找之前应用在折半插入和排序归并排序中过,道理是一样的,具体代码如下:int BinSearch(int A[], int low, int high,int k){ int mid; while(low <= high) { mid = (low+high)/2; //mid为low和high的中间值; if(A[mid] == k) //如果中间值等于k,则返...
2020-04-07 22:55:03
109
原创 数据结构与算法之归并排序
归并排序与其他交换排序和选择排序不一样,是将两个或两个以上的有序表合并为一个新的有序表;以下是其C语言代码:void Merge(int A[], int low, int mid, int high){ int i,j,k; int *B = ( int*)malloc((high-low+1)*sizeof(int)); for(int k = low; k <= high;...
2020-04-01 16:00:10
107
原创 数据结构与算法之堆排序
堆排序有大根堆和小根堆,这里只介绍大根堆以下是其C语言代码:首先是调整堆的元素:void HeadAdjust(int A[], int k, int len) { int i; A[0] = A[k]; //A[0]为临时空间,相当于“哨兵” for(i = 2*k; i < len; i*= 2) //i = 2*k的意思是访问子树,i *= 2的意思是访问当...
2020-03-31 17:21:36
143
原创 数据结构与算法之简单选择排序
字如其名,这是一种简单的算法C语言代码如下:void SelectSort(int A[], int n){ int i,j,k; int temp; for(i = 0; i < n; i++) { k = i; //每次从已排序的序列选取最后一个元素与后面未排序的序列做对比 for(j = i+1; j < n; ++j) { if(A[k] ...
2020-03-30 17:12:03
134
原创 数据结构与算法之快速排序
快速排序属于“交换类”的算法,和冒泡算法一样,比冒泡算法更高效其C语言代码如下:void QuickSort(int A[], int low,int high){ int i,j,temp; i = low; j = high; if(low < high) { temp = A[low]; while(low < high) { while(j &...
2020-03-30 17:05:08
80
原创 数据结构与算法之冒泡排序
其基本思想为从后往前(或从前往后)两两比较相邻元素的值,若为逆序(A[i-1]>A[i]),则交换他们,直到序列比较完;C语言代码如下:void BubbleSort(int A[], int n){ int i,j,temp,flag; for(i = 0; i < n; i++) { flag = false; //表示本次冒泡是否发生过交换的标志 f...
2020-03-29 17:35:32
165
原创 数据结构与算法之希尔排序
希尔排序又称“缩小增量排序”,其基本思想是将排序表分割成形如L[i,i+d,i+2d,…,i+kd]的特殊子表,即将相隔某个增量的数据组成一个子表,对各个子表进行直接插入排序,当整个表的元素已经基本有序时,,再对整个表进行一次直接插入排序;C语言代码如下:void ShellSort(int A[],int n){ int i,j,dk,temp; for(dk = n/2; dk &g...
2020-03-29 17:10:52
87
原创 考研数据结构与算法之折半插入排序
C语言代码:void InsertSort(int A[], int n){ int i,j,low,mid,high; for(int i = 2; i <= n; i++) { A[0] = A[i]; low = 1; high = i - 1; while(low <= high) { mid = (low + high)/2; if(...
2020-03-29 15:52:34
208
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人