- 博客(46)
- 收藏
- 关注
原创 练习八:图的综合实验
选址问题【基本要求】给定n个村庄之间的交通图。若村庄i和j之间有路可通,则i和j用边连接,边上的权值Wij表示这条道路的长度。现打算在这n个村庄中选定一个村庄建一所医院。编写如下算法:(1)求出该医院应建在哪个村庄,才能使距离医院最远的村庄到医院的路程最短。(2)求出该医院应建在哪个村庄,能使其它所有村庄到医院的路径总和最短。【提示】对于问题(1),可以先求出每个村庄到其它所有村庄...
2019-10-09 11:47:46
4863
4
原创 练习七:图的基本操作
1)用邻接矩阵存储方式,表示下面的图,并输出。2)由上面的邻接矩阵产生邻接表,并输出。3)编程完成从顶点0开始的深度优先遍历和广度优先遍历。#include <stdio.h>#include <stdlib.h>#define MaxVertexNum 100#define INFINITY 65535typedef int Vertex;typede...
2019-10-09 11:46:40
471
原创 练习六: 排序(二维数组)
#define LeftChild(i)(2 * (i) + 1)#define Cutoff 3插入排序void InsertionSort(char(*A)[20], int N){ int j, P; char Tmp[20], *p; for (P = 1; P < N; P++) { strcpy(Tmp, *(A + P)); for (j = P; ...
2019-10-09 11:45:36
430
原创 练习五: 散列(线性探查)
【基本要求】编写一个程序,实现哈希表的初始化、插入、查找、删除等相关运算,并在此基础上完成如下功能:(1) 建立{16,74,60,43,54,90,46,31,29,88,77}哈希表A[0…12],哈希函数为H(k)=key%p,(p取13),并采用线性探查法解决冲突。(2) 在上述哈希表中查找关键字为29的记录。(3) 在上述哈希表中删除关键字为77的记录,再将其插入。【输出结果】...
2019-10-09 11:42:40
585
原创 练习四:运算(表达式树)
1、 给出指定目录文件系统的目录结构,以凹入法写入文件dir_structure.txt文档中,并计算出该目录所占存储区域大小。(凹入法显示参见P93)2、 设计一个“自动计算器”,具体描述如下:(1)需要计算的表达式以文本文件格式存放在TXT文本之中;(2)文本中每一行为一个表达式;(3)表达式中包含运算数、加、减、乘、除等运算符以及圆括号;比如: (34-72.3)*54.7-82....
2019-10-09 11:41:47
941
2
原创 练习三:任务调度
某一个调度系统,具体描述如下:(1) 调度任务存放在一个文本文件中,每一行一个调度任务。(2) 每个调度任务包含任务名称、任务开始时间、以及执行任务需要的总时间。(3) 假设每个任务每次可以得到的执行的时间为2分钟,当它执行时间完毕后,将它排到等待调度队列的尾部,等待新一轮的执行分配。(4) 如果执行完毕,则写入日志文件:task_log.txt中,其格式为:任务名称 执行开始时间 ...
2019-10-09 11:40:50
548
原创 练习二:运算
设计一个“自动计算器”,具体描述如下:(1)需要计算的表达式以文本文件格式存放在TXT文本之中;(2)文本中每一行为一个表达式;(3)表达式中包含运算数、加、减、乘、除等运算符以及圆括号;比如: (34-72.3)*54.7-82.4(4)“自动计算器”根据输入待计算的文件名,对文本文件中的每一个表达式进行计算,并将每一个表达式的结果写入原文件名_out.txt文件中, 保存记录时,用覆...
2019-10-09 11:40:04
506
原创 练习一:通讯录
设计一个班级同学的通讯录,要求如下: 通讯录中每个同学的信息包含以下内容:学号(id)、姓名(name)、电话号码(tel)。如果需要更多其他信息,请自行添加。 程序主菜单包含以下几个功能:(1) 添加记录:通过键盘输入信息,添加一条通讯录记录。(2) 删除记录:通过键盘输入学号,删除该学号的记录。(3) 输出记录:输出通讯录全部记录。(4) 按姓名查找:通过键盘输入姓名,输出该同...
2019-10-09 11:39:00
1345
原创 Chapter 9 Graph (2)
Dijkstra算法实现/*伪码描述:void Dijkstra(Graph G,Table T){ Vertex V,W; for(; ;) { V = smallst unknown distance vertex; if(V == NotAVertex) break; T[V].konwn = ture;...
2019-10-05 20:42:22
163
原创 Chapter 9 Graph (1)
图的邻接表表示#include <stdio.h>#include <stdlib.h>#define MaxVertexNum 100 //最大顶点数设为100typedef int Vertex; //用顶点下标表示顶点typedef int WeightType; //边的权值设为整数typedef char DataTyp...
2019-10-05 20:41:01
198
原创 Chapter 7 Sorting
冒泡排序#include <stdio.h>typedef int ElementType;void BubbleSort(ElementType A[], int N){ int i, j, Tmp; for (i = 0; i < N - 1; i++) { for (j = 0; j < N - 1 - i; j++) { if (A[j...
2019-10-05 20:38:46
130
原创 Chapter 6 Heap
二叉堆(优先队列)#include <stdio.h>#include <stdlib.h>#define MinData -1typedef int ElementType;typedef struct HeapStruct{ int Capacity; int Size; ElementType *Elements;}*Heap;Heap In...
2019-10-05 20:34:55
105
原创 Chapter 5 Hasing
散列(分离链接法)#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#define KEYLENGTH 15 // 关键词字符串的最大长度typedef char ElementType[KEYLENGT...
2019-10-05 20:34:12
204
原创 Chapter 4 Tree
二叉树#include <stdio.h>#include <malloc.h>#define MaxSize 100typedef char ElemType;typedef struct BTNode{ ElemType Data; //数据元素 struct BTNode *Lchild; //指向左孩子结点 struct BTNode *Rchi...
2019-10-05 20:31:39
196
原创 Chapter 3 List-Stack-and-Queue(1)
链表(单链表)#include <stdio.h>#include <stdlib.h>typedef int ElementType;typedef struct Node{ ElementType Data; struct Node *Next;}*List,*Position;void Add(List L, ElementType X){ ...
2019-10-05 20:29:56
162
原创 Chapter 3 List-Stack-and-Queue(2)
多项式运算(数组)#include <stdio.h>#include <stdlib.h>#define MaxDegree 20typedef struct PolyNode{ int CoeffArray[MaxDegree + 1]; int HighPower;}*Polynomial;void ZeroPolynomial(Polynomia...
2019-10-05 20:27:18
159
原创 Chapter 2 Algorithm-Analysis
最大子序列问题的解#include <stdio.h>int MaxSubsequenceSum(int A[], int N){ int ThisSum, MaxSum, j; ThisSum = MaxSum = 0; for (j = 0; j < N; j++) { ThisSum += A[j]; if (ThisSum > MaxSum)...
2019-10-05 20:21:09
127
原创 第5章 运输层
第5章 运输层5.1 运输层协议概述5.1.1 进程之间的通信从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。1. 运输层的作用 ...
2019-01-06 21:01:31
1911
2
原创 第4章 网络层(3)
第4章 网络层4.7 IP 多播4.7.1 IP 多播的基本概念1. 多播可大大节约网络资源 2. IP 多播在互联网上进行多播就叫做 IP 多播。互联网范围的多播要靠路由器来实现。能够运行多播协议的路由器称为多播路由器(multicast router)。当然它也可以转发普通的单播IP数据报。从 1992 年起,在互联网上开始试验虚拟的多播主干网 MBONE (M...
2018-12-14 21:15:56
1739
原创 第4章 网络层(1)
第四章 网络层4.1 网络层提供的两种服务在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?1. 虚电路服务面向连接的通信方式建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议,就可使所发送的分...
2018-12-09 16:55:24
1897
原创 12. 重定位及动态链接
12.1 符号的重定位1. 重定位步骤2. 重定位信息3. 重定位操作举例(1)源文件(2)链接结果(3)R_386_PC32的重定位main.o重定位前R_386_PC32的重定位方式(4) R_386_32的重定位重定位前R_386_32的重定位方式swap.o重定位重定位后12.2 可执行文件的加载1. 加载方法(1)通过调用exe...
2018-12-07 17:28:34
1800
原创 11. 符号和符号解析
11.1 符号及符号表1. 符号的定义和引用局部变量temp分配在栈中,不会在过程外被引用,因此不是符号定义2. 连接符号的类型(1)三种类型每个可重定位目标模块m都有一个符号表,它包含了在m中定义和引用的符号,有三种链接器符号:类型特征举例Global symbols(模块内部定义的全局符号)由模块m定义并能被其他模块引用的符号。例如,非static C函数...
2018-12-04 21:35:00
5933
6
原创 10. 链接概述和目标文件格式
10.1 可执行文件生成概述一个典型程序的转换处理过程1. 预处理(1) 预处理命令 $gcc -E hello.c -o hello.i $cpp hello.c &amp;gt; hello.i(2) 处理源文件中以“#”开头的预编译指令 – 删除“#define”并展开所定义的宏 – 处理所有条件预编译指令,如“#if”,“#ifdef”, “#endif”等 – 插入头...
2018-12-03 21:33:46
852
原创 9. x86-64指令系统
9.1 x86-64指令系统概述背景Intel最早推出的64位架构是基于超长指令字VLIW技术的 IA-64体系结构,Intel 称其为显式并行指令计算机EPIC( Explicitly Parallel Instruction Computer)。安腾和安腾2分别在2000年和2002年问世,它们是IA-64体 系结构的最早的具体实现,因为是一种全新的、与IA-32不 兼容的架构,...
2018-12-01 21:38:09
3442
原创 8. 复杂数据类型的机器级表示
8.1 数组和指针类型的分配和访问1. 数组的分配和访问(1)数组元素在内存的存放和访问定义一个具有4个元素的静态存储型short 数据类型数组A,可以写成“static short A[4];”第i(0≤i≤3)个元素的地址计算公式为**&amp;amp;amp;amp;A[0]+2*i**;假定数组A的首地址存放在EDX中,i 存放在ECX中, 现要将A[i]取到AX中,则所用的汇编指令是: movw (...
2018-12-01 18:40:43
704
原创 7. C语言语句的机器级表示
7.1 过程调用的机器级表示1. 可执行文件的存储器映像2. 调用过程3. IA-32的寄存器使用约定4. 过程调用过程中栈和栈帧的变化(Q为被调用过程)5. 过程(函数)的结构6. 入口参数的位置7. 过程调用参数传递举例例一:传值&传地址程序一:按地址传参数swap(&a,&b)leal 直接装入有效地址程序二:按值传参数sw...
2018-11-29 17:37:26
1143
原创 6.2 IA-32指令类型(二)
6.4 IA-32中的控制转移指令1. 常用控制转移指令2. 类别根据单个标志的值转移按无符号整数比较转移按带符号整数比较转移3. 例子:程序的机器级表示与执行问题描述:(1) subl $1, %edx指令的执行结果(2) cpml %edx,%eax指令的执行结果(3) jbe .L3指令的执行结果总结正确的做法是将参数len声明 为int型。Why...
2018-11-28 21:14:50
1032
1
原创 6.1 IA-32指令类型(一)
IA-32中的主要指令类型(1)传送指令通用数据传送指令MOV:一般传送,包括movb、movw和movl等MOVS:符号扩展传送,如movsbw、movswl等MOVZ:零扩展传送,如movzwl、movzbl等XCHG:数据交换PUSH/POP:入栈/出栈,如pushl,pushw,popl,popw等地址传送指令LE...
2018-11-27 21:24:52
3465
原创 5. IA-32指令系统概述
5.1 程序转换概述1.“指令”的概念(1) 计算机中的指令有微指令、机器指令和伪(宏)指令之分机器指令处于硬件和软件的交界面 (相当于一个菜谱指定的一个完整做菜过程)微指令是微程序级命令,属于硬件范畴 (相当于洗、切、煮、炒等做菜“微过程“ )伪指令是由若干机器指令组成的指令序列,属于软件范畴 (相当于由多个菜谱合成一个”大菜“的过程)汇编指令是机器指...
2018-11-26 22:45:19
2023
原创 4. 乘除运算及浮点数运算
4.1 整数乘法运算1. 整数乘法通常,高级语言中两个n位整数相乘得到的结果通常也是一个n位整数,即结果只取2n位乘积中的低n位。–例如,在C语言中,参加运算的两个操作数的类型和结 果的类型必须一致,如果不一致则会先转换为一致的 数据类型再进行计算。Q: 在计算机内部,一定有 x2≥0x^2≥0x2≥0 吗?A: 若x是带符号整数,则不一定! 如x是浮点数,则一定! 例如,当...
2018-11-25 22:26:09
11003
1
原创 3. 运算电路基础
3.1 数字逻辑电路基础1. 布尔代数0和1分别代表逻辑值“假”和“真”最基本的逻辑运算有:与(AND)或(OR)非(NOT)“ • ” ( “ ∧” )“ + ” ( “ ∨ ” )“ ¯ ” ( “ ﹁ ” )任何一种逻辑表达式都可写成 这三种基本运算的逻辑组合例如,异或(XOR)运算的 逻辑表达式为: A⊕B=A•B‾+A‾•BA⊕B=A• ...
2018-11-24 20:32:30
4752
原创 2.2 数据的表示和存储(二)
2.4 浮点数的编码表示1. 浮点数类型C语言声明操作数类型存储长度(位)float单精度浮点数32double双精度浮点数64long double扩展精度浮点数80 / 962. 浮点数的表示(1)浮点数(Floating Point)的表示范围以下面的32位浮点数格式的规格化数为例,计算表示范围①第0位数符S;②第1~8位为...
2018-11-23 21:01:43
2790
原创 第 1 章 概述
第 1 章 概述1.1 计算机网络在信息时代中的作用1.2 因特网概述1.2.1 网络的网络 网络(network) 网络(network)由若干 结点(node) 和连接这些结点的 链路(link) 组成。 互联网 网络之间还可以通过路由器连接起来,构成一个覆盖范围更大的计算机网络,成为互联网。互联网是“网络的网络”(network of networks) ...
2018-11-23 14:24:01
364
原创 1. 计算机系统概述
1.1 为什么要学习计算机系统基础1.用系统思维分析问题2.什么是计算机系统3.计算机系统基础内容提要1.2 计算机系统基本组成与基本功能1.计算机发展史(1) 第1台通用电子计算机 1946年,第1台通用电子计算机ENIAC诞生 (Electronic Numerical Integrator And Computer 电子数字...
2018-11-23 14:22:15
740
原创 8.学生信息管理系统
学生信息管理系统准备1.数据库CREATE TABLE `stu` ( `sid` INT(11) NOT NULL AUTO_INCREMENT, `sname` CHAR(5) NULL , `gender` CHAR(2) NULL , `phone` CHAR(12) NULL , `birthday` DATE NULL , `hobby` CHAR(50) NUL...
2018-11-23 10:45:50
282
原创 7.事务&数据库连接池&DBUtil
事务&数据库连接池&DBUtil事务Transaction 其实是指一组操作,里卖弄包含许多个单一的逻辑,只要有一个逻辑没有子hi习惯成功,那么就算失败,所有的数据就都回归到最初的状态。使用命令行的方式演示事务开启事务 start transaction提交或回滚事务commit : 提交事务rollback : 回滚事务1.关闭自动提交功能2.演示事务...
2018-11-22 21:28:47
232
原创 6.JSP & EL & JSTL
JSP & EL & JSTLJSPJava Server Page什么是jsp从用户的角度讲,就是一个网页,从程序员的角度看待,她继承了servlet,所以可以直接说servlet是一个Servlet为什么会有jsphtml多数情况下用来显示静态内容,但是有时候我们需要在网页上显示一些动态数据,比如:查询所有的学生信息,根据姓名去查询具体某个学生。...
2018-11-22 21:27:29
143
原创 5.Cookie & Session
Cookie & SessionCookie饼干,其实是一份小数据,是服务器给客户端,并且存储在客户端上的一份数据应用场景自动登录、浏览记录、购物车为什么需要Cookiehttp的请求时无状态的,即客户端与服务器在通讯的时候是无状态的,服务器不知道客户端以前是否来访过。为了更好的用户体验,更好的交互[自动登陆],从公司层面讲,为了更好的手机用户习惯。Cookie...
2018-11-22 21:25:28
162
原创 4.Servlet
Servlet一、Servlet基础servlet是什么其实就是一个Java程序,运行在web服务器上,用于接收和响应客户端的http请求.更多的是配合动态资源来做.当静态资源也需要使用带servlet,只不过是Tomcat里面已经定义好的一个DefaultServlet.Hello Servlet1.写一个web工程,要有一个服务器2.测试运行web工程 1.创...
2018-11-22 21:23:12
140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人