数据结构与算法
文章平均质量分 82
静能生悟
静生智,定生慧,一勤天下无难事,俭以养德,厚德载物!!
展开
-
第19章 Linux电源管理的系统架构和驱动之CPUIdle驱动
19.3 CPUIdle驱动 目前的ARM SoC(System on Chip)大多支持几个不同的Idle级别,CPUIdle驱动子系统存在的目的就是对这些Idle状态进行管理,并根据系统的运行情况进入不同的Idle级别。具体SoC的底层CPUIdle驱动实现提供一个Idle级别表,实现各种不同Idle状态的进入和退出流程。 对于Intel系列笔记本计算机,支持ACPI(Advanc...原创 2018-06-08 10:12:55 · 2353 阅读 · 0 评论 -
第17章Linux音频设备驱动之Linux ALSA 音频设备驱动(二)
17.4.4 控制接口1.control 控制接口对于许多开关(switch)和调节器(slider)而言应用相当广泛,control能从用户空间被存取。control 的最主要用途是 mixer,所有的 mixer 元素基于 control 内核 API 实现,control 用 snd_kcontrol 结构体描述。include/sound/control.hstruct snd_kc...原创 2018-06-19 16:53:24 · 1010 阅读 · 0 评论 -
求素数
/*** 实验题1.1 求素数:只能被1或者自己整除的自然数(正整数)* 设计一个程序,输出所有小于等于n(n为一个大于2的正整数)的素数。* 要求:1、每行输出10个素数。2、尽可能采用较优的算法*/#include <stdio.h>#include <math.h>/* 判断正整数x是否为素数 */int prime(int x);...原创 2018-12-19 09:06:24 · 249 阅读 · 0 评论 -
实现双链表各种基本运算的方法
#include <stdio.h>#include <malloc.h>#include <stdbool.h>typedef int ElemType;typedef struct DNode{ ElemType data; struct DNode *prior;//指向前驱结点 struct DNode *next;...原创 2019-01-10 16:51:25 · 2414 阅读 · 0 评论 -
综合性实验:停车场管理程序
/*** 实验题目:* 停车场管理程序* 实验目的:* 深入掌握栈和队列应用的算法设计* 实验内容:* 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。* 汽车在停车场内按车辆到达时间的先后顺序,依次由南向北排列(大门在最北端,最* 先到达的第一辆车停放在车场的最南端),若车场内已停满n...原创 2019-01-17 14:01:43 · 3672 阅读 · 3 评论 -
实现顺序串各种基本运算的算法
/*** 实验题目:* 实现顺序串各种基本运算的算法* 实验目的:* 领会顺序串存储结构和掌握顺序串中各种基本运算的算法设计* 实验内容:* 实现顺序串的各种基本运算* 1、建立串s="abcdefghijklmn"和串s1="123"* 2、输出串s* 3、输出串s的长度* ...原创 2019-01-17 17:49:12 · 12319 阅读 · 0 评论 -
实现循环单链表各种基本运算的算法
/*** 实现循环单链表各种基本运算的算法**/#include <stdio.h>#include <malloc.h>#include <stdbool.h>typedef int ElemType;typedef struct LNode{ ElemType data;//数据域 struct LNode *nex...原创 2019-01-12 15:36:00 · 1799 阅读 · 0 评论 -
实现循环双链表各种基本运算的算法
#include <stdio.h>#include <malloc.h>#include <stdbool.h>typedef int ElemType;typedef struct DNode{ ElemType data;//数据域 struct DNode *prior;//指向前驱结点 struct DNode *n...原创 2019-01-12 21:00:49 · 2457 阅读 · 0 评论 -
将单链表按基准划分
#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef struct LNode { ElemType data; //数据域 struct LNode *next; //指向后继结点}LinkNode; // 声明单链表结点类型/*-----------------...原创 2019-01-13 15:25:27 · 4305 阅读 · 0 评论 -
实现链串各种基本运算的算法
/*** 实验题目:* 实现链串各种基本运算的算法* 实验目的:* 领会链串存储结构和掌握链串中各种基本运算的算法设计* 实验内容:* 实现链串的各种基本运算* 1、建立串s="abcdefghijklmn"和串s1="123"* 2、输出串s* 3、输出串s的长度* ...原创 2019-01-18 15:40:12 · 6540 阅读 · 0 评论 -
将两个单链表合并为一个单链表
#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef struct LNode { ElemType data; //数据域 struct LNode *next; //指向后继结点}LinkNode; // 声明单链表结点类型/*-----------------...原创 2019-01-13 16:12:17 · 15303 阅读 · 1 评论 -
求集合(用单链表表示)的并、交和差运算
#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef struct LNode { ElemType data; //数据域 struct LNode *next; //指向后继结点}LinkNode; // 声明单链表结点类型/*-----------------...原创 2019-01-13 21:51:31 · 5704 阅读 · 1 评论 -
实现二叉树各种遍历算法
/*** 实验题目:* 实现二叉树各种遍历算法* 实验目的:* 领会二叉树的各种遍历过程以及遍历算法设计* 实验内容:* 设计程序,实现二叉树的先序遍历、中序遍历和后序遍历的* 递归和非递归算法,以及层次遍历的算法。*/#include <stdio.h>#include <malloc.h&...原创 2019-01-24 11:22:07 · 9357 阅读 · 0 评论 -
职工信息的综合运算
/*** 职工信息的综合运算* 目的:深入掌握单链表应用的算法设计* @date:2018-01-14* @author:xiezhi*/#include <stdio.h>#include <malloc.h>typedef struct employee{ int no; //职工号 char name[10]; /...原创 2019-01-14 15:40:34 · 4969 阅读 · 2 评论 -
由遍历序列构造二叉树
/*** 实验题目:* 由遍历序列构造二叉树* 实验目的:* 领会二叉树的构造过程以及构造二叉树的算法设计* 实验内容:* 设计程序,实现由先序序列和中序序列以及由中序序列和后序序列构造* 一颗二叉树的功能(二叉树中每个结点值为单个字符)。要求以括号表示法和* 凹入表示法输出该二叉树。并用先序遍历序列"A B ...原创 2019-01-24 18:05:29 · 5391 阅读 · 2 评论 -
用单链表实现两个大整数相加运算
/*** 用单链表实现两个大整数相加运算* 目的:深入掌握单链表应用的算法设计* 主要功能:* 1、将用户输入的十进制整数字符串转化为带头结点的单链表,每个结点存放一个整数位* 2、求两个整数单链表相加的结果单链表* 3、求结果单链表的中间位,如123的中间位为2,1234的中间位为2* @date:2018-01-14* @author:xiezh...原创 2019-01-14 17:28:14 · 11234 阅读 · 2 评论 -
求1~n的连续整数和
#include <stdio.h>#include <time.h>#include <math.h>/*------------------------方法1--------------------------*/long add1(long n){ long i, sum = 0; for(i = 1; i <=...原创 2019-01-09 10:46:37 · 11116 阅读 · 4 评论 -
常见算法时间函数的增长趋势分析
#include <stdio.h>#include <math.h>/*-------------------求2的指数--------------------*/long exponent(int n){ long s = 1; for(int i = 1; i <= n; i++) s *= 2; ...原创 2019-01-09 11:37:17 · 3392 阅读 · 0 评论 -
实现中序线索化二叉树
/*** 线索二叉树概念:* 对于n个结点的二叉树,在二叉链存储结构中有n+1个空链域,* 利用这些空链域存放在某种遍历次序下该结点的前驱结点和后继* 结点的指针,这些指针称为线索,加上线索的二叉树称为线索二* 叉树。* 实验题目:* 实现中序线索化二叉树* 实验目的:* 领会线索二叉树的构造过程以及构...原创 2019-01-25 10:17:20 · 1874 阅读 · 0 评论 -
求连续整数阶乘的和
#include <stdio.h>long sum(int n){ long sum = 0, fact = 1; for(int i = 1; i <= n; i++) { fact *= i; sum += fact; } return sum;}int main(vo...原创 2019-01-09 14:33:45 · 3059 阅读 · 0 评论 -
实现顺序栈各种基本运算的算法
/*** 实现顺序栈各种基本运算的算法* 目的:* 领会顺序栈存储结构和掌握顺序栈中各种基本运算算法设计* 主要功能:* 1、初始化栈s* 2、判断栈s是否非空* 3、依次进栈元素a、b、c、d、e* 4、判断栈s是否非空* 5、输出栈序列* 6、释放栈*/#include &...原创 2019-01-15 10:04:05 · 13021 阅读 · 4 评论 -
实现顺序串的各种模式匹配算法
/*** 实验题目:* 实现顺序串的各种模式匹配算法* 实验目的:* 掌握串的模式匹配算法即BF(Brute Force)和KMP(克努特-莫里斯-普拉特)算法设计* 实验内容:* 实现顺序串的各种模式匹配运算* 1、建立目标串s="abcabcdabcdeabcdefabcdefg"和模式串s1="abcde...原创 2019-01-20 20:56:37 · 6137 阅读 · 1 评论 -
求二叉树中的结点个数、叶子结点个数、某结点层次和二叉树宽度
/*** 实验题目:* 求二叉树中的结点个数、叶子结点个数、某结点层次和二叉树宽度* 实验目的:* 掌握二叉树遍历算法的应用,熟练使用先序、中序、后序三种递归* 遍历算法和层次遍历算法进行二叉树问题求解。* 实验内容:* 设计程序,实现如下功能:* 1、输出二叉树b的结点个数* 2、输出二叉树b的叶子结...原创 2019-01-25 15:41:00 · 5728 阅读 · 2 评论 -
实现顺序表各种基本运算的方法
/** 实现顺序表各种基本运算的方法*/#include <stdio.h>#include <malloc.h>#include <stdbool.h>#define MAX_SIZE 50typedef char ElemType;typedef struct { int length; //存放顺序表的长度 Ele...原创 2019-01-09 17:59:05 · 1097 阅读 · 0 评论 -
实现链栈各种基本运算的算法
/*** 实现链栈各种基本运算的算法* 目的:* 领会链栈存储结构和掌握链栈中各种基本运算算法设计* 主要功能:* 1、初始化栈s* 2、判断栈s是否非空* 3、依次进栈元素a、b、c、d、e* 4、判断栈s是否非空* 5、输出栈序列* 6、判断栈s是否非空* 7、释放...原创 2019-01-15 11:17:06 · 7939 阅读 · 0 评论 -
文本串加密和解密程序
/*** 实验题目:* 文本串加密和解密程序* 实验目的:* 掌握串的应用算法设计* 实验内容:* 一个文本串可用事先给定的字母映射表进行加密。例如,设字母映射表为:* a b c d e f g h i j k l m n o p q r s t u v w x y z* n g z q t c o...原创 2019-01-20 22:13:10 · 7144 阅读 · 1 评论 -
实现环形队列各种基本运算的算法
/*** 实现环形队列各种基本运算的算法* 目的:* 领会环形队列存储结构和掌握环形队列中各种基本运算算法设计* 主要功能:* 1、初始化队列q* 2、判断队列q是否非空* 3、依次进队元素a、b、c* 4、出队一个元素,输出该元素* 5、依次进队元素d、e、f* 6、输出出队序列...原创 2019-01-15 14:15:35 · 10255 阅读 · 1 评论 -
构造哈夫曼树和生成哈夫曼编码
一、什么是哈夫曼树?哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树。用一幅图来说明:它们的带权路径长度分别为:图a: WPL=5*2+7*2+2*2+13*2=54图b: WPL=5*3+2*3+7*2+13*1=48可见,图b的带权路径长度较小,可以证明图b就是哈夫曼树(也称为最优二叉树)。二、如何构建哈夫曼树一般按下面步骤构建:1,将所有左,右子树...原创 2019-01-25 17:12:36 · 27348 阅读 · 5 评论 -
求一个串中出现的第一个最长重复字符串
/*** 实验题目:* 求一个串中出现的第一个最长重复字符串* 实验目的:* 掌握串的模式匹配应用算法设计* 实验内容:* 采用顺序结构存储串,采用简单模式匹配方法求串s中* 出现的第一个最长重复子串的下标和长度*/#include <stdio.h>#include <malloc....原创 2019-01-21 10:23:34 · 2363 阅读 · 1 评论 -
综合性实验:利用KMP算法求子串在主串中出现的次数
/*** 实验题目:* 利用KMP算法求子串在主串中出现的次数* 实验目的:* 深入掌握KMP算法的应用* 实验内容:* 利用KMP算法求子串t在主串s中出现的次数,并以s="aaabbdaabbde",* t="aabbd"为例显示匹配过程。*/#include <stdio.h>#inc...原创 2019-01-21 11:23:38 · 6684 阅读 · 5 评论 -
实现链队各种基本运算的算法
/*** 实现链队各种基本运算的算法* 目的:* 领会链队存储结构和掌握链队中各种基本运算算法设计* 主要功能:* 1、初始化链队q* 2、判断链队q是否非空* 3、依次进链队元素a、b、c* 4、出队一个元素,输出该元素* 5、依次进链队元素d、e、f* 6、输出出队序列* ...原创 2019-01-15 16:01:46 · 6805 阅读 · 2 评论 -
实现单链表各种基本运算的方法
#include <stdio.h>#include <malloc.h>#include <stdbool.h>typedef char ElemType;typedef struct LNode { ElemType data; //数据域 struct LNode *next; //指向后继结点}LinkNode; // 声明单...原创 2019-01-10 11:20:54 · 1172 阅读 · 0 评论 -
采用递归算法求解汉诺塔问题
一.起源:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。二.抽象为数学问题:如下图所示,从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n...原创 2019-01-21 15:03:24 · 2949 阅读 · 0 评论 -
求路径和路径条数问题
/*** 实验题目:* 求路径和路径条数问题* 实验目的:* 领会基本递归算法设计和递归执行过程* 实验内容:* 有一个m x n的网格,现在一个机器人位于左上角,该机器人在任何位置上时,* 只能向下或者向右移动一步,问机器人达到网格的右下角(1,1)位置的所有可能的* 路径条数,并输出所有的路径。以m=2,n...原创 2019-01-21 16:18:54 · 6361 阅读 · 0 评论 -
高效求解x^n
/*** 实验题目:* 高效求解x^n* 实验目的:* 掌握基本递归算法设计* 实验内容:* 要求最多使用O(以2为底n的对数)次递归调用*/#include <stdio.h>/*-------------------------高效求解x^n---------------------------*/...原创 2019-01-21 17:03:58 · 2822 阅读 · 1 评论 -
用栈求解迷宫问题的所有路径及最短路径程序
一、迷宫示意图如下图所示:二、程序设计/*** 实验题目:* 用栈求解迷宫问题的所有路径及最短路径程序* 实验目的:* 掌握栈在求解迷宫问题中的应用* 实验要求:* 输出迷宫示意图中的迷宫所有路径,并求第一条最短路径长度及最短路径*/#include <stdio.h>#define M...原创 2019-01-16 10:00:15 · 5830 阅读 · 3 评论 -
用递归方法逆置带头结点的单链表
/*** 实验题目:* 用递归方法逆置带头结点的单链表* 实验目的:* 掌握单链表递归算法设计方法* 实验内容:* 用递归方法逆置一个带头结点的单链表*/#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef s...原创 2019-01-21 19:43:14 · 8560 阅读 · 1 评论 -
用递归方法求单链表中倒数第k个结点
/*** 实验题目:* 用递归方法求单链表中倒数第k个结点* 实验目的:* 掌握单链表递归算法设计方法* 实验内容:* 用递归方法求单链表中倒数第k个结点*/#include <stdio.h>#include <malloc.h>typedef char ElemType;typedef...原创 2019-01-21 20:05:18 · 4519 阅读 · 0 评论 -
求二叉树中从根结点到叶子结点的路径
/*** 实验题目:* 求二叉树中从根结点到叶子结点的路径* 实验目的:* 掌握二叉树遍历算法的应用,熟练使用先序、中序、后序3种递归* 和非递归遍历算法以及层次遍历算法进行二叉树问题求解。* 实验内容: 设计程序,完成如下功能:* 1、采用先序遍历方法输出所有从叶子结点到根结点的逆路径* 2、采用先序...原创 2019-01-26 16:21:12 · 7483 阅读 · 0 评论 -
编写病人看病模拟程序
/*** 实验题目:* 编写病人看病模拟程序* 实验目的:* 掌握队列应用的算法设计* 实验内容:* 程序反映病人到医院排队看病的情况。在病人排队过程中,主要重复两件事:* (1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。* (2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就...原创 2019-01-16 15:21:22 · 7809 阅读 · 0 评论