- 博客(18)
- 资源 (10)
- 收藏
- 关注
原创 数据结构与C语言实现(十二)——排序合集
#include #include #define MAXSIZE 200#define MAXDATA 65535int arry[MAXSIZE];struct HNode{ int data[MAXSIZE + 1]; int size; int num;};typedef struct HNode* Heap;void Print(){ for (int
2017-10-27 12:22:00 204
原创 数据结构与C语言实现(十一)——图(下):最小生成树与Prim与Kruskal算法
1.Prim算法,来自于Dijkstra算法的变化,选取一个起始点,然后每次寻找距离这个点权值最小的点,收入树中(使它距离源点的距离为0),然后整个树相当于都是源点,而在V集合中(V集合指的是不在S集合中的点,也就是说还没被收录到树中的点)找一个权值最小的,然后收录之,依次循环,直到所有的点都被收录。这是一种从点出发的算法,在Dijkstra算法上进行改进。注意到,我们的初始化过程中首先将
2017-10-24 22:00:56 524
原创 数据结构与C语言实现(十)——图(下):Dijkstra与Floyd
1.用BFS实现无权值单源最短路径问题/*在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径。Shortest PathSource -----》 Destination问题分类:1.单源最短路径问题:从某固定源点触发,求其到所有其他顶点的最短路径。1.1 无权图1.2 有权图2.多源最短路径问题:求任意两顶点间的最短路径*///无权图的单源最短路算
2017-10-23 19:38:43 279
原创 数据结构与C语言实现(九)——图(上):邻接表,DFS与BFS
//邻接表#include #include #define MAXSIZE 100typedef struct LNode_Vertex* Vertex;typedef struct LNode_Edge* Edge;typedef struct LNode_List* List;typedef struct LNode_Queue* Queue;struct LNode_
2017-10-22 12:49:08 2491 1
原创 数据结构与C语言实现(八)——图(上):邻接矩阵表示图
/*图论图是顶点V和边E构成的1.首先我们考虑使用邻接矩阵来表示一个图。G[i][j],若是G中的边,那么就为1,否则为0比如中间有条线,那么为1,那么显然也为1;明显有一半是浪费。所以我们只存矩阵的上三角或者下三角。简而言之就是建立一个二维数组下标到一维数组下标的映射,具体映射如下G[N][N] ---> A[N*(N+1)/2] 三角形内元素总数量 ---> G[i][j] -
2017-10-22 12:48:03 772
原创 数据结构与C语言实现(七)——树(下):集合与集合例题
首先是集合的基本数据类型,这里的查找我使用了规模对比的优化方式。//用树实现集合的表现形式,注意是树不是二叉树,这是一种包含指向爸爸下标的数据结构#include #include #define MaxSize 100typedef struct{ int data; int parent;//负数表示为集合首个元素(即根节点),绝对值为数量}SetType;SetTyp
2017-10-19 17:04:14 309
原创 数据结构与C语言实现(六)——树(下):题目:堆中的路径
/*题目——堆中的路径5 3 插入5次数据,进行3次查找46 23 26 24 10 输入数据,建立最小堆5 4 3 打印从H[i]到根节点的路径*/#include #include #define MAXN 1001#define MINH -10001int H[MAXN], size;//定义一个数组,以及
2017-10-19 17:03:03 258
原创 数据结构与C语言实现(五)——树(下):哈夫曼树与哈夫曼编码
/*哈弗曼树的定义带权路径长度:设二叉树有n个叶子节点,每个叶子节点带有权值Wk,从根节点到每个椰子节点的长度为Lk则每个叶子节点的带权路径的长度之和就是每个wk*lk之后加起来最优二叉树或者哈夫曼树:WPL最小的二叉树*/#include #include //哈弗曼树的构造——每次把权值最小的两个树合并#define MAXSIZE 100typedef struct
2017-10-19 17:00:39 875
原创 数据结构与C语言实现(四)——树(中):堆的二叉树实现
#include #include //平衡二叉树 —— AVL树/*1.不平衡的发现者,麻烦节点在发现者右子树的右边,因此叫做RR插入,需要RR旋转(左单旋)2.发现者,麻烦节点是在发现者左子树的左边,叫LL插入,需要LL旋转(右单旋)3.发现者,麻烦节点在左子树的右边,叫LR插入,需要LR旋转*///堆 —— 数组的完全二叉树实现堆/*优先队列:特殊的队列,取出的元素
2017-10-17 21:26:11 247
原创 数据结构与C语言实现(三)——树(上):二叉树
/*查找1.静态查找:集合中的记录是固定的,没有插入和删除。2.动态查找:集合中的记录是动态变化的,要执行插入和删除的操作等。*/ #include #include #define MAXSIZE 100typedef struct LNode *List;struct LNode{ int data[MAXSIZE]; int Length;//数组长度};/*
2017-10-16 21:34:46 302
原创 数据结构与C语言实现(二)——堆栈和队列
#include #include //这里是用数组实现堆栈的两种方式,第一种是单方向的,第二种是双方向的。#define MaxSize 100struct SNode{ int data[MaxSize]; int top;};typedef struct SNode *Stack;//用一个数组实现两个堆栈struct DNode{ int data[MaxSi
2017-10-13 22:07:09 443
原创 C/C++题库整理(四)
/*明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。Input Paramn 输入随机数的个数
2017-10-12 22:22:50 940
原创 数据结构与C语言实现(一)——链表及两个实例
//用数组实现线性表/*#include #include #define MAXSIZE 11struct LNode { char data[MAXSIZE]; int last;}L;typedef struct LNode * PList;void List_Adress()//测试结构体及内部元素地址{ PList PtrL = &L; printf(
2017-10-12 22:19:15 351
原创 迅为Exynos4412开发板例程及注释——原子操作与原子位操作
原子操作——非常简单,就是flag。 #include #include /*驱动注册的头文件,包含驱动的结构体和注册和卸载的函数*/#include /*注册杂项设备头文件*/#include /*注册设备节点的文件结构体*/#include //原子操作的函数头文件#include #include #define DRIVER_NAME "atomic_
2017-10-12 22:09:49 326
原创 蛇形矩阵的一种解法(C语言)
#include #define RIGHT 0#define DOWN 1#define LEFT 2#define UP 3int main(){ int N; while(scanf("%d",&N) != EOF) { int num = 1; int feet = 1; int flag_feet = 0; int a[50][50
2017-10-11 14:22:44 2209
原创 C/C++题库整理(三)
/*Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。输入描述:Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。输出描述:Lily的所有图片按照从小到大的顺序输出示例1输入Ihave1nose2hands10fing
2017-10-10 21:04:17 1306
原创 C/C++题库整理(二)
题目一:/*写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。#include #include #include int main(){ char float_num[200]; int flag_dian = 0; int flag_jinwei = 0; int ans = 0; while
2017-10-02 15:03:44 1584
原创 C/C++题库整理(一)
2017年10月1日牛客网题目一:/*小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出移位后的字符串。输入例子1:AkleBiCeilD输出例子1:kleieilA
2017-10-01 22:15:36 31553 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人