`
langzhe
  • 浏览: 279048 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
  Erlang bit语法入门 1> Red=2, Green=61, Blue=20. 3> Mem = <<Red:5, Green:6, Blue:5>>. #Red分配5个bit存储空间,Green:分配6个bit存储空间, Blue分配5个bit存储空间 5+6+5=16正好是两个字节,Erlang程序书上解释:创建了2个字节的二进制数据来存放一个16bit长的字。 shell会将这个变量打印为<<23,180>>,从而可以确认默认是8bit。23,180分别占用了8个bit的存储空间。 <<23 ...
2、在第 2.11 节 “本节综合练习”的习题1中规定了一种日志文件的格式,每行是一条记录,由行号、日期、时间三个字段组成,由于记录是按时间先后顺序写入的,可以看作所有记录是按日期排序的,对于日期相同的记录再按时间排序。现在要求从这样的一个日志文件中读出所有记录组成一个链表,在链表中首先按时间排序,对于时间相同的记录再按日期排序,最后写回文件中。比如原文件的内容是: 1 2009-7-30 15:16:42 2 2009-7-30 15:16:43 3 2009-7-31 15:16:41 4 2009-7-31 15:16:42 5 2009-7-31 15:16:43 6 20 ...

双链表插入自动排序

    博客分类:
  • c
今天开了一上午无聊的会议,利用一些时间想了一下,双列表插入自动排序问题。 这双链表还是花了我很多时间,早上测试结果,总是不对是因为我的list_node输出造成的,让我误以为打印结果不对。 1 /* doublylinkedlist.c */ 2 #include <stdlib.h> 3 #include <stdio.h> 4 #include "doubl ...
利用环形链表实现 Josephus杀人游戏 1 #include <stdlib.h> 2 #include <stdio.h> 3 #include "circular.h" 4 5 void make_n(int n); 6 void kill_one(int, int); 7 void main(int argc, char *args[]){ 8 int i=1; //用i来记录当前点数 9 int n,m; 10 scanf("%d", ...
    错误蛋疼的反转 temp引用的地址已经被改变了所以不能实现反转 105 void reverse(void) 106 { 107     link node = head->next; 108     link temp; 109     temp = head; 110     head->next = head->pre; 111     head->pre = temp ->next; 112     while(node!=head){ 113         temp = node; 114         node ...

单链表反转 指针坑

    博客分类:
  • c
单链表反转 指针坑  当我看到单链表反转这题目时,感觉这么简单啊。事实很多坑,一不小心就跳进去了。到现在我都记不清跳了多少坑。 写代码时不是死循环就是就是丢数据。 这 其实本质上是 指针的坑。一不留神就over了。   因为前面已经实现过各种列表的插入。 1、我首先想到的是从A链表中取出数据再生成一个新的链表B,从表头脑插入这样成了链表的反转了。 就顺手写了下面代码[1],运行进入死循环。 出现错误的原因: 假设,有 A->B->C->D->E这样一个链表 for循环中第一个head默认是A,h->next(A的指向的一个元素)是B。当然调用in ...
链表插入并自动排序操作思考 修改insert函数实现插入排序的功能,链表中的数据按从小到大排列,每次插入数据都要在链表中找到合适的位置再插入。在第 6 节 “折半查找”中我们看到,如果数组中的元素是有序排列的,可以用折半查找算法更快地找到某个元素,想一想如果链表中的节点是有序排列的,是否适用折半查找算法?为什么?   1、插入并排序 64 link insert(link lnode, char ch) 65 { 66 link node = create_node(ch); 67 link *head; 68 if(lnode==NULL) ...
1、此函数中的head被定义为static,所以不需要用return来返回 来自http://learn.akae.cn/media/ch26s01.html insert函数虽然简单,其中也隐含了一种特殊情况(Special Case)的处理,当head为NULL时,执行insert操作插入第一个节点之后,head指向第一个节点,而第一个节点的next指针域成为NULL,这很合理,因为它也是最后一个节点。所以空链表虽然是一种特殊情况,却不需要特殊的代码来处理,和一般情况用同样的代码处理即可,这样写出来的代码更简洁 ,但是在读代码时要想到可能存在的特殊情况。  当然,insert函数传 ...
测试环境 Linux jason-lxw 3.2.0-39-generic #62-Ubuntu SMP Thu Feb 28 00:28:53 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 4G内存 Erlang R14B04 (erts-5.8.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.8.5  (abort with ^G) 1>  测试数据: add()->     III=&qu ...
原题:来自http://learn.akae.cn/media/ch26s01.html 1、修改insert函数实现插入排序的功能,链表中的数据按从小到大排列,每次插入数据都要在链表中找到合适的位置再插入。在第 6 节 “折半查找”中我们看到,如果数组中的元素是有序排列的,可以用折半查找算法更快地找到某个元素,想一想如果链表中的节点是有序排列的,是否适用折半查找算法?为什么?     1、下面是从小到大的插入函数,里面用了两个if 和 (*head)->next = node; 才实现插入自动排序功能。 我想去掉  if(lnode->next == NULL){ ...

关于单链表的思考

    博客分类:
  • c
当我看了这个例子后http://learn.akae.cn/media/ch26s01.html 感觉很简单没什么特别的(这感觉往往遗漏很多细节)。 例子中用了static 定义了关键字 static link head = NULL; 看到后我就想用非static来重写单链表。 习惯了Erlang的函数编程,在定义C语言中的函数时刻意不用指针去实现,为了进一步理解代码还刻意不用typedef定义变量。可是奋斗了很久也没实现。 不得不用取地址方式,最后也没实现。不得不用指针了,这样就造成了传输指针又返回指针了,对于C 语言这可是多此一举。 创建链表时是从表头插入的  75 st ...
这是我见过比较好的解释 来自http://learn.akae.cn/media/ch23s02.html 我们知道main函数的标准原型应该是int main(int argc, char *argv[]);。argc是命令行参数的个数。而argv是一个指向指针的指针,为什么不是指针数组呢?因为前面讲过,函数原型中的[]表示指针而不表示数组,等价于char **argv。那为什么要写成char *argv[]而不写成char **argv呢?这样写给读代码的人提供了有用信息,argv不是指向单个指针,而是指向一个指针数组的首元素。数组中每个元素都是char *指针,指向一个命令行参数字符 ...
使用 make USE_SPECS=false 参数编译   src/rabbit_networking.erl:49: type hostname() undefined src/rabbit_networking.erl:71: type ip_port() undefined  

我的第一个escript

  1 #!/usr/bin/env escript   2 %% -*- erlang -*-   3 -mode(compile).   4 main([]) ->   5     io:format("This is my first escript.~n");   6    7 main([Arg1]) ->   8     io:format("This is my first escript Arg1=~p~n", [Arg1]);   9 main([Arg1,Arg2]) ->  10     io:f ...
  开发程序的时候,好几次都看到后台打出下面的错误日志。 但一直重现不了。   =ERROR REPORT==== 20-Feb-2013::14:07:56 ===         module: misultin_websocket         line: 243 linked websocket controlling loop crashed with reason: killed     直到昨天再测试程序时,突然发现页面报出close提示,我以为是timeout关闭的,查看了一下时间戳和日志,发现不是超市引起。但正好看到上面错误 log。也没发现什么直接关系。 ...
Global site tag (gtag.js) - Google Analytics