![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 56
菜鸟小馒头
这个作者很懒,什么都没留下…
展开
-
简单区分大端序和小端序(Little-Endian or Big-Endian)
关于这部分的内容已经有很多写的很好的帖子了,我在这里引用了百度的解释,并自己实践了一下,仅此而已:大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中原创 2017-05-12 08:26:06 · 601 阅读 · 0 评论 -
字符串空格替换
字符串空格替换成%20(参考剑指 offer)#include #include int main(){ char str[] = "We Are Happy"; char new_str[50] = ""; int len = sizeof(str)-1; int count=0; int blank = 0; for(int i=0;i<len;i++) { if(原创 2017-10-23 22:14:34 · 136 阅读 · 0 评论 -
C语言函数指针的使用
#include int main(){ int max(int,int); int (*p)(int,int); int a,b,c; printf("Please Input a and b: "); scanf("%d,%d",&a,&b); p = max; c = (*p)(a,b); printf(" a=%d\n b=%d\n max=%d\n",a,b,c);原创 2017-10-23 16:39:01 · 587 阅读 · 0 评论 -
二叉树的创建和遍历、删除
二叉树的创建前序、中序、后序遍历方法:#include #include typedef struct BinaryTreeNode{ struct BinaryTreeNode * pLeft; struct BinaryTreeNode * pRight; int m_Value;}BINARYTREENODE;void CreateBinaryTre原创 2017-10-16 08:29:21 · 321 阅读 · 0 评论 -
双向链表创建、删除某节点
#include #include #include #define MAXLEN 10typedef struct LinkNode{ struct LinkNode * pNext; struct LinkNode * pPrev; int m_Value;}LINKNODE;void ShowLinkNode(LINKNODE * pHead){ if (NU原创 2017-10-17 11:05:24 · 1336 阅读 · 0 评论 -
字符串全排列问题(递归算法)
#include void swap(char array[],int src,int dst){ char temp = array[src]; array[src] = array[dst]; array[dst] = temp;}void Permutation(char array[],int from , int to ){ printf("start..fr原创 2017-06-30 08:36:19 · 338 阅读 · 0 评论 -
部分翻转链表
void ReverseMNLinkList(LinkNode *pHead,int from,int to){ LinkNode *pStoreHead = pHead; LinkNode *pCurr = pHead->p_Next; int index = 0; for(index=0;index<from-1;index++) {原创 2017-07-07 06:45:40 · 324 阅读 · 0 评论 -
栈的应用(进制转换)
/******************************************************Description :Convert decimal to 8Input :int valueOutPut :NoneReturn Value :Calls :Call By :*********************原创 2017-07-11 08:42:03 · 284 阅读 · 0 评论 -
栈的应用(括号匹配)
/******************************************************Description :Check ()[]{}if matchInput :char *pStoreOutPut :NoneReturn Value :Calls :Call By :******************原创 2017-07-11 08:42:44 · 221 阅读 · 0 评论 -
栈的基本操作(附带一个数据结构、C语言版)
/******************************************************Description :This File Tell U How To Use StackHistory :Date :2017/7/7Author :wangzaiModification :*********************原创 2017-07-07 08:38:12 · 532 阅读 · 0 评论 -
链表中倒数第K个节点
题目:输入一个链表,输出该链表中倒数第K个节点。双指针,p1先走k-1,然后p1 和 p2一起前移,p1到终点,p2的位置就是结果;void FindLastLinkListKValue(LinkNode *pHead,int k){ LinkNode *p1 = pHead; LinkNode *p2 = pHead; int i,j=0; for(i=原创 2017-07-02 22:41:07 · 175 阅读 · 0 评论 -
链表翻转
题目:定义一个函数,输入一个链表的头结点,翻转该链表并输出翻转后的头结点详细过程请参考https://github.com/Sangewang/LinkListPrac/blob/master/CreateAndShowLinklist.cLinkNode * ReverseLinkList(LinkNode * pHead){ if(NULL == pHead) {原创 2017-07-02 21:47:11 · 168 阅读 · 0 评论 -
两个有序链表的合并(递归)
题目:两个无序链表的合并先各自排序,然后合并详细代码请参考:https://github.com/Sangewang/LinkListPrac/blob/master/CreateAndShowLinklist.cvoid LinkListBubbleSort(LinkNode *pHead,int len){ if(NULL == pHead) { return;原创 2017-07-02 18:13:24 · 454 阅读 · 0 评论 -
两个随机长度的链表相加
题目两个随机链表求和:链表存储的是非负整数,每个节点只存储一个数字,如 2->5->7 + 8->9->6 = 0->5->4->1这里只给出核心函数代码块,完整的例子请参考https://github.com/Sangewang/LinkListPrac/blob/master/CreateAndShowLinklist.cLinkNode * AddSumLinkList(LinkNod原创 2017-07-02 17:56:01 · 485 阅读 · 0 评论 -
创建随机长度链表并显示
#include #include #define LINKNODEFIRST 6#define LINKNODESECOND 9typedef struct linknode{ int m_Value; struct linknode *p_Next;}LinkNode;LinkNode * CreateLinkList(LinkNode *pHead , int L原创 2017-07-02 07:39:49 · 412 阅读 · 0 评论 -
全排列非递归算法
#include void swap(char *a , char *b){ char temp = *a; *a = *b; *b = temp;}void Reverse(char * a , char *b){ while(a<b) { swap(a,b); a++; b--; }}void showstr(char a[],原创 2017-07-01 15:56:48 · 577 阅读 · 0 评论 -
字符串全排列问题(递归解决有重复字符问题)
前一篇博客是一个常规字符串问题的解决,如果字符串中有重复子串,如1223,如果还是用上篇博客的解决方法,就会造成重复,这里给出“去重”解法。以空间换取时间的算法:#include void swap(char array[],int src,int dst){ char temp = array[src]; array[src] = array[dst]; array[dst]原创 2017-07-01 14:29:48 · 1146 阅读 · 0 评论 -
冒泡、鸡尾酒、选择、插入、快排、希尔
#include int main(int argc , char *argv[]){ int array[] = {5,2,7,3,1,6,9,8,0}; int len = sizeof(array)/sizeof(int); printf("Old Array order:\n"); showSortArray(array,len); /**********1***原创 2017-06-16 11:26:48 · 315 阅读 · 0 评论 -
手动实现memcpy涉及内存重叠与不重叠情况
#include #include #include void my_memcpy(char *dest,const char * sour,int len){ char * dst = NULL; const char * src = NULL; if (dest>sour+len || dest<sour) { printf("内存不重叠情况.....\n"); ds原创 2017-10-24 16:22:37 · 645 阅读 · 0 评论