随笔分类 -  数据结构

数据结构
摘要:在终端下输入一串ip字符串如:19219219211,ip地址可能是19.219.219.211、192.19.219.211、192.192.19.211和192.192.192.11。 以下是本人造的轮子,代码看起来比较粗糙。 因为每个ip段都只有3种情况:个十百。只要把四段ip段解析出来再校验 阅读全文
posted @ 2016-08-23 02:46 Kevin_Hwang 阅读(295) 评论(0) 推荐(0)
摘要:面试比较频繁且基础的题目,以下是本人用两种不同方法造的轮子。 reverse_list1是通过每个节点的next指针反向指向prev,reverse_list2是利用递归,直接到链表末段再重新把next指向prev。用reverse_list2消耗更多栈。 程序初始化可能比较晦涩,没有写插入节点直接 阅读全文
posted @ 2016-08-23 02:39 Kevin_Hwang 阅读(223) 评论(0) 推荐(0)
摘要:二叉排序树其实就是二分法,平均时间复杂度为O(nlogn),以下是本人硬着头皮造的轮子。 以上程序随机生成100个0-99的数,程序不能插入相同的数,修改insert_bst_data这个函数就可以。 查找和增加数据都是比较简单,实现起来就需要依靠c的指针功底。(用全局变量毫无压力) 删除数据需要找 阅读全文
posted @ 2016-08-10 11:44 Kevin_Hwang 阅读(272) 评论(0) 推荐(0)
摘要:对于C语言而言,实现哈希表加深指针的运用。哈希表是典型空间换时间的算法,解决冲突有多种,以下采用链条式。 以下是本人造的轮子,做一个记录。 hash.c 链条哈希表算法插入一个数据思路是: 1:开辟一个初始数组作为哈希表(如果空间没问题越大越好); 2:根据新插入的数据计算出对应哈希值作为哈希表的索 阅读全文
posted @ 2016-06-17 15:42 Kevin_Hwang 阅读(334) 评论(0) 推荐(0)
摘要:快速排序是比较经典的排序方法,平均时间复杂度为O(nlogn),不深究如何推导此复杂度。 以下是本人造的轮子,做一个记录。 quicksort.c 快速排序算法思路是: 1:选一个参考ref(上例选的是p[0]),并缓存起来; 2:在右侧(索引号大的一侧,初始为末端)逐一(j--)选取比ref小的值 阅读全文
posted @ 2016-06-16 15:25 Kevin_Hwang 阅读(182) 评论(0) 推荐(0)