数据结构
文章平均质量分 68
Bill Adams
资深互联网人。曾从事3D游戏客户端、音视频SDK、浏览器内核、元宇宙业务系统、AI工程架构设计与开发。负责ToC与ToB产品业务拓展。
展开
-
约瑟夫环问题
约瑟夫环问题 [问题描述] 编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 [基本要求] 利用单向循环链表存储结构模拟原创 2007-06-03 11:45:00 · 1019 阅读 · 0 评论 -
标准二维表的求解过程
Description 设 n 是一个正整数, 2*n 的标准二维表是由正整数 1, 2, ..., 2*n 组成的2*n 数组, 该数组的每行从左到右递增, 每列从上到下递增. 2*n 的标准二维表全体记为 Tab(n). 譬如: 当 n = 3 时 Tab(3) 如下: 12345612原创 2009-05-05 13:16:00 · 2537 阅读 · 3 评论 -
可以移植的随机数生成程序
ANSI C标准委员会的随机数生成算法:I[j+1] = a * I[j] + c (mod m) (c != 0) (1)a = 1103515245,c = 12345,m = 2^32优点:速度快、每次调用的运算量小缺点:连续调用不能避免序列的相关性 Park和Miller的简单的乘法同余算法:I[j+1] = a * I[j]原创 2009-05-07 18:32:00 · 1403 阅读 · 1 评论 -
存储管理动态分区分配及回收算法
实验环境:C/C++一、目的和要求分区管理是应用较广泛的一种存储管理技术。本实验要求用一种结构化高级语言构造分区描述器,编制动态分区分配算法和回收算法模拟程序,并讨论不同分配算法的特点。二、实验内容1、编写:First Fit Algorithm2、编写:Best Fit Algorithm3、编写:空闲区回收算法三、提示和说明(一)主程序 1、定义分区描述器node,包括 3个元素:(1原创 2009-07-24 19:15:00 · 13969 阅读 · 7 评论 -
时间片轮转算法和优先级调度算法 C语言模拟实现
一、目的和要求进程调度是处理机管理的核心内容。本实验要求用高级语言编写模拟进程调度程序,以便加深理解有关进程控制快、进程队列等概念,并体会和了解优先数算法和时间片轮转算法的具体实施办法。二、实验内容1.设计进程控制块PCB的结构,通常应包括如下信息:进程名、进程优先数(或轮转时间片数)、进程已占用的CPU时间、进程到完成还需要的时间、进程的状态、当前队列指针等。 2.编写两种调度算法程序:优先数原创 2009-07-24 19:26:00 · 52805 阅读 · 10 评论 -
多级反馈队列调度算法 C语言模拟实现
多级反馈队列调度算法:1、设置多个就绪队列,并给队列赋予不同的优先级数,第一个最高,依次递减。2、赋予各个队列中进程执行时间片的大小,优先级越高的队列,时间片越小。3、当一个新进程进入内存后,首先将其放入一个对列末尾,如果在一个时间片结束时尚未完成,将其转入第二队列末尾。4、当一个进程从一个对列移至第n个队列后,便在第n个队列中采用时间片轮转执行完。5、仅当时间片空闲时,才调度第二个队列中的进程。原创 2009-07-24 19:23:00 · 26466 阅读 · 16 评论 -
词法分析之LED文件批量生成
#include #include #include /* 关键字表宏定义 */ #define KEYTYPE int // #define ERRTYPE -1 #define FILES 0 #define DATE 1 #define FONT_NAME 2 #define FONT_SIZE 3#define TIMES 4原创 2009-07-24 20:31:00 · 1302 阅读 · 0 评论 -
魔兽哈希算法封装和测试
近期由于需要,研究了魔兽文件打包管理器的相关算法,重点对其文件索引表的生成和查找进行了研究:采用哈希表进行,在冲突方面的处理方面,采用线性探测再散列。在添加和查找过程中进行了三次哈希,第一个哈希值用来查找,后两个哈希值用来校验,这样可以大大减少冲突的几率。 这里对其进行了简单的封装,扩展时,仅仅需要对结构体进行扩展即可。更为详细的说明,参考代码:【转载请保留版权,谢谢】原创 2009-07-30 16:40:00 · 24010 阅读 · 3 评论 -
RLE算法变体C语言实现
RLE算法:这种压缩编码是一种变长的编码,RLE根据文本不同的具体情况会有不同的压缩编码变体与之相适应,以产生更大的压缩比率。 变体:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。 /**********************************************原创 2009-09-23 17:38:00 · 2431 阅读 · 1 评论 -
常用算法----递推法
递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。设要求问题规模为N的解,当N=1时,解或为已知,或能非常方便地得到解。能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为i-1的解后,由问题的递推性质,能从已求得的规模为1,2,…,i-1的一系列解,构造出问题规模为I的解。这样,程序可从i=0或i=1出发,重复地,由已知至i-1规模的解,通过递推,获得规模为i的解,直至得到规转载 2010-04-22 16:44:00 · 1590 阅读 · 0 评论 -
输出一个数全排列的组合【利用哈密尔顿图遍历算法实现】
为了求出一个数的全排列的所有组合,此处我用到了哈密尔顿图的遍历算法,有些笨拙,不知道有没有更好的算法,敬请指教。#include #include #include #define NUM 128typedef struct{ int vex[NUM]; /* 图中的顶点 */ int arcs[NUM][NUM]; /* 图中的边原创 2009-05-05 12:26:00 · 2919 阅读 · 0 评论 -
灰度矩阵算法实现
1、stdafx.h头文件// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料#include #include // TODO: 在此处引用程序原创 2009-04-27 21:53:00 · 1514 阅读 · 2 评论 -
模拟停车场管理
设停车场是一个可停放n辆汽车的狭长通道,并只有一个大门可供汽车进出,汽车在停车场内按车辆到达的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),如车长内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次原创 2007-06-03 11:50:00 · 2487 阅读 · 1 评论 -
哈希表
#include #include #include #define L 50 /*定义哈希表长*/#define M 47 /*定义p值*/#define N 30 /*定义名单长*/char z[22];struct old{ char *name; char *py; int k;};struct old oldlist[L];/*原始表*/struct hterm{ char *nam原创 2007-09-29 12:55:00 · 798 阅读 · 0 评论 -
约瑟夫环
#include#define LEN sizeof(struct JosNode)struct JosNode{ int pwd; int ord; struct JosNode *next;};void Joseph(int *m,struct JosNode *p);struct JosNode *creat(int n);struct JosNode *Move(struct JosNod原创 2007-09-29 13:03:00 · 601 阅读 · 0 评论 -
图的基本操作
#define M 20 #include #include #include /*定义图*/ typedef struct{ int V; int R; int vexnum; }Graph; /*定义队列*/ typedef struct{ int V; int front; int rear; }Queue; /*全局变量:访问标志数组*/ int visited; /*创原创 2007-09-29 12:58:00 · 1313 阅读 · 1 评论 -
内部排序
#include #include #include #define MAXSIZE 10 #define SUCCESS 1 #define FAILUE 0 #define LEN 5000 void swap(int *p1,int *p2);int B原创 2007-09-29 13:00:00 · 639 阅读 · 0 评论 -
校园导游程序
/*校园导游程序[问题描述] 用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。游客通过终端可询问: (1)从某一景点到另一景点的最短路径。(最短路径问题)(2)游客从公园进入,选取一条最佳路线。(3)使游客原创 2007-09-29 12:52:00 · 6990 阅读 · 6 评论 -
哈夫曼编码[tc]
#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "string.h"#include "ctype.h"/********************全局变量定义部分***************************/int n;FILE *fp;char tmpcode[50];int t=0;/**********原创 2007-09-29 13:01:00 · 725 阅读 · 0 评论 -
扩展的欧几里德算法求乘法逆元
#include /* 扩展的欧几里德算法求乘法逆元 By VC++ 6.0 陈 */int ExtendedEuclid( int f,int d ,int *result);int main(){int x,y,z;z = 0;printf("输入两个数:/n");scanf("%d%d",&x,&y);if(ExtendedEuclid(x,y,&z)) printf("%d和%d互素,原创 2008-05-17 12:12:00 · 3860 阅读 · 4 评论 -
最快搜索算法之二分搜索,最快排序算法之快排【C语言实现】
详细设计见代码说明:#include #define KeyType inttypedef struct _SeqList { KeyType key;}SeqList;int BinSearch( SeqList R[],KeyType K ){ // 在有序表R[1..n]中进行二分查找,成功时返回结点的位置,失败时返回零 int low = 1,原创 2009-04-16 09:27:00 · 3572 阅读 · 2 评论 -
人工智能算法之启发式搜索算法(A*)
待完成。。。原创 2012-08-15 16:50:15 · 2571 阅读 · 0 评论