摘要:
栈是一种可以实现“先进后出”的存储结构,其次栈是一种线性结构。栈的分类: 栈的算法: 静态栈 出栈 动态栈 压栈以下,我们实现一个动态栈,动态栈实质上就是一个操作受限的链表,完整代码如下所示: 1 /* 2 filename: stack.c 3 */ 4 #include 5 #include 6 7 typedef enum{false, true} bool; 8 9 struct Node 10 { 11 int data; //数据域 12 struct Node * pNext... 阅读全文
摘要:
一个对象在计算机内部到底用哪些二进制代码表示,我们称之为编码。而补码的出现就是为了解决整数的存储问题。那到底什么是补码呢?以8位的数据为例,对于无符号数来说是从00000000b~11111111b到0~255一一对应的。那么如何对有符号数进行编码呢?(即如何用8位数据表示有符号数)--------------------------------------------------------------------------------------------------------------------------【原码】:用数据的最高位来表示符号,1表示负,0表示正,其它位表示数值。 阅读全文
摘要:
这里我们用C语言实现一个简单的文本加解密小工具。实现代码如下所示: 1 /* 2 filename: encrypt.c 3 */ 4 #include 5 #include 6 7 #define MAX 256 8 9 int main(void)10 {11 FILE * fp;12 FILE * ftemp;13 char ch;14 char strFileName[MAX];15 char strTempBuff[MAX];16 17 printf("please input the file name:");18 ... 阅读全文
摘要:
这里我们实现一个用来结束进程的小工具,先来大致了解下所用到的函数。【CreateToolhelp32Snapshot】:该函数通过获取进程信息为指定的进程、进程使用的堆[HEAP]、模块[MODULE]、线程[THREAD]建立一个快照[snapshot]。函数原型:HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags, //用来指定快照中需要返回的对象,如TH32CS_SNAPPROCESS为在快照中包含系统所有的进程DWORD th32ProcessID //一个进程ID号,用来指定要获取哪一个进程的快照,当获取系统进程列表或获取当前进程 阅读全文
摘要:
专业术语: 首节点:指的是存放有效数据的第一个节点; 尾节点:指的是存放有效数据的最后一个节点; 头节点:为首节点之前的一个节点,数据类型和首节点是一模一样的,头节点不存放有效数据,设置头节点的目的是为了方便对链表的操作; 头指针:为指向头节点的指针变量。对算法的理解: 狭义的算法是与数据的存储密切相关的; 广义的算法是与数据的存储无关的 泛型:利用某种技术达到的效果就是,不同的存储方式,操作是一样的(如以下例子中的冒泡排序)。关于如何看懂一个程序: 1)看懂程序流程; 2)看懂每一个语句的功能; 3)试数。 1 #include 2 #include 3 #... 阅读全文
摘要:
该函数用于判定已排序的数组array中是否存在某个特定的值value。这里假定数组元素以升序排列,如果数组array中包含value,则函数返回value在array中的位置(介于0~n-1之间的一个整数);否则,该函数返回-1。在折半查找时,首先将value与数组array的中间元素进行比较,如果value小于中间元素的值,则接下来在该数组的前半部分查找;否则,在该数组的后半部分查找。在这两种情况下,下一步都是将value与所选部分的中间元素进行比较。这个过程一直进行下去,直到找到指定的值或者查找范围为空。 1 #include 2 3 #define N 10 4 5 //函数声明 ... 阅读全文