- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 小练习 - 哈希表之分离链接法
小练习 - 哈希表之分离链接法哈希表十分常用,这里做个小练习,冲突解决使用分离链接发。从哈希表的C语言实现角度来看,Hash本质上做了这样一个映射:key -> hashtable[index] -> addr, 新插入一个数据时,key由数据本身决定,存储地址addr则是系统分配,key通过哈希函数可以算出索引,查找索引对应哈表项目得到地址。采用分离链接法,底层数据结构主要是数据和单链表。这里未考
2017-03-18 01:03:24 822
原创 小练习 - IP地址int与string相互转换C实现
有次用到了IP地址int与str的转换,不想用socket的库函数,发现网上很多实现都挺啰嗦的,自己实现了一个,记录下,大小端序可以根据实际使用进一步做转换。/* ip 字符串合法性由调用者保证 */unsigned int ip_str2int(const char* ip){ unsigned int re = 0; unsigned char tmp = 0; ...
2017-03-13 23:10:30 4433
原创 小练习 - 基于链表的栈和队列
随手练下基本的数据结构,基于链表实现一个动态大小的栈和队列,最基本简单的数据结构要注意各种边界场景。基于链表实现,频繁增删调用mallc会带来一定开销,实际使用要看情况来定。基于链表的栈typedef struct _node { int data; struct _node* next;}node;typedef struct _stack { node *top;
2017-03-10 00:13:41 457
原创 操作系统原理:进程地址空间
Linux进程虚拟存储先回忆一下ELF文件的组织结构,可以看这篇文章:Linux 链接与ELF文件。程序执行后进程地址空间布局则和操作系统密切相关。在将应用程序加载到内存空间执行时,操作系统负责代码段与数据段的加载,并在内存中为这些段分配空间。Linux的进程地址空间大致如下:Linux内核虚拟存储内核虚拟存储器包含了内核的代码和数据结构。内核虚拟存储器的一些区域被映射到所有进...
2017-03-07 00:17:39 3523
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人