研究散列(Hashing)算法的体会 散列,虽然只支持二叉查找树所允许的一部分操作,但是散列具有以常数平均时间执行插入、删除和查找的特点。散列无法有效支持元素间排序的操作,因此像findMax、findMin以及在线性时间内按顺序打印所有元素的操作都无法支持。为了解决散列冲突问题,普遍存在两种方式,分离链接法(separate chaining),其做法是将散列到同一个位置的元素以一个链表的方式保存。通常产生冲突的元素被插入到链表的最前面,这样不仅方便,而且由于最后插入的元素最有可能不
C语言-计算器实现(Dev c++编译通过) 转自http://zhangjunhd.blog.51cto.com/113473/102014-括号匹配int match(char * cs, int size);1.做一个空栈。读入字符直到文件尾。2.对读入的字符进行判断, 2.1如果字符是一个左括号,则入栈; 2.2如果字符是一个右括号,如果栈空或弹出的左括号不匹配,则匹配失败; 2.3输入结束,如果栈非空,则匹配失败,否则匹配成功。-计算后缀表达式的值(假定后缀表达式正确)int postfixValue(char * expr
C语言--链表的常见操作(在DVE-C++编译运行通过) 链表分为单链表、双向链表、单向循环链表、双向循环链表。针对链表的操作主要有插入一个节点,删除一个节点,新建一个链表,打印一个链表,寻找链表的中间节点。对链表进行排序等等。
巴斯卡(Pascal)三角形 (C语言实现) 以前读书的时候没有用C语言编写什么东西,感觉C语言的功能有限,现在工作后觉的C语言的功能真的很强大,可以做很多事情。所以现在重新把C语言好好学习一下。在博客上记录自己的一点一滴,看着自己成长进步,为了梦想而奋斗,技术改变未来。
河内之塔(C语言递归实现) #include <stdio.h>#include <stdlib.h> //河内之塔 递归实现void hanoi(int n,char A,char B,char C); int main(int argc, char *argv[]){ int n; printf("输入盘数:"); scanf("%d",&n);
C语言实现快速排序(完整版)DVE-C++编译通过 #include #include #include #define MAXLINES 5000 //进行排序的最大文本行 char *lineptr[MAXLINES]; //指向文本行的指针数组 int readlines(char *lineptr[],int nlines);void writelines(char *lineptr[],int nlines);void qsort(char *lineptr[], int left,int right); //对