C提高
文章平均质量分 70
funny_fly
这个作者很懒,什么都没留下…
展开
-
双向非循环链表(没有头结点)
双向非循环链表:虽然没有设置表头,其实是把第一个结点当做表头来处理的。分别实现了:初始化链表、创建链表、从尾部插入链表、获取指定位置结点的值、从头开始遍历链表、给定结点指针分别向前和向后遍历、删除给定位置结点原创 2016-12-12 17:34:48 · 751 阅读 · 0 评论 -
哈希表的实现(字符串作为key)
/*哈希表的实现(字符串作为key)*/#include#include#include#define HASH_TABLE_LENGTH 100//哈希表头typedef struct HASH_HEAD{ struct HASH_LINK *next;}Hash_head;//单链表,存储数据typedef struct HASH_LINK原创 2016-12-16 10:34:48 · 4801 阅读 · 0 评论 -
c语言中内存字节对齐问题
在C语言面试和考试中经常会遇到内存字节对齐的问题。今天就来对字节对齐的知识进行小结一下。首先说说为什么要对齐。为了提高效率,计算机从内存中取数据是按照一个固定长度的。以32位机为例,它每次取32个位,也就是4个字节(每字节8个位,计算机基础知识,别说不知道)。字节对齐有什么好处?以int型数据为例,如果它在内存中存放的位置按4字节对齐,也就是说1个int的数据全部落在计算机一次取数的区间内,那转载 2017-01-18 16:33:34 · 307 阅读 · 0 评论 -
union和struct对齐大小问题
对齐就是要满足存储变量的起始地址与对齐大小余数为0。对于union,分两步:先算union对齐大小,对齐的大小是取决于union成员中字节对齐最大的那个;再算union实际分配的空间,而分配给union的实际大小不仅要满足是对齐大小的整数倍,同时要满足实际大小不能小于最大成员的大小。如:Union U1{Char a[9];Intb;};成员a是char数组,对转载 2017-01-18 16:48:23 · 467 阅读 · 0 评论 -
二叉树前序、中序、后序遍历
根据网络代码优化,可以运行:(有空再追加注释)#include#includetypedef char TypeData;typedef struct stBiTreeNode{TypeData data;struct stBiTreeNode *lchild;struct stBiTreeNode *rchild;}BITREENODE;B原创 2017-10-10 10:08:57 · 278 阅读 · 0 评论