Romi-知行合一

轻轻的风轻轻的梦,轻轻的晨晨昏昏, 淡淡的云淡淡的泪,淡淡的年年岁岁。
  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

2012年8月28日

摘要: 队列:先进先出的线性表,它只允许在一端(队尾)进行插入操作,在另一端(队首)进行删除操作。与栈的插入和删除都在栈顶进行不同。这里只说队列的链式存储。国际惯例,先上源码 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //定义队列 6 typedef struct node{ 7 int data; 8 struct node *next; 9 }Queue; 10 //定义对手指针和队尾指针 11 typedef struct pointer{ 12 Queue *f... 阅读全文

posted @ 2012-08-28 22:23 romi 阅读(5546) 评论(0) 推荐(2) 编辑

摘要: 栈:一种只允许在一端进行插入和删除的线性表。向栈中插入元素叫进栈,从栈中删除数据元素叫出栈。栈有顺序存储和链式存储,顺序存储需要事先分配栈的内存空间,这里只讲链式存储。国际惯例,先上源代码,再说各个模块。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //栈的定义 6 typedef struct node{ 7 int data; 8 struct node *next; 9 }Stack;10 11 //栈的初始化12 void StackInit(Stack *top 阅读全文

posted @ 2012-08-28 15:47 romi 阅读(816) 评论(0) 推荐(0) 编辑

摘要: 双链表即双向链表,链表中每个节点有两个指针,分别指向节点的直接前驱和直接后躯。特点:从双链表的任一节点开始,都可以非常方便的访问他的前驱节点和后继节点。这也是单链表的缺点,单链表可以方便的访问某一节点的后继节点,但没法访问他的前驱节点。双链表的定义及其操作于单链表类似,要注意的就是每个节点的两个指针域。直接上代码 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<malloc.h> 4 5 //定义双链表 6 typedef struct dnode{ 7 char data; 8 struct dnod 阅读全文

posted @ 2012-08-28 12:42 romi 阅读(2358) 评论(0) 推荐(0) 编辑

摘要: 在使用C/C++编程时,有时内存泄漏问题对程序会形成灾难,这种问题往往要仔细检查。linux下有方便测试程序内存管理的工具:valgrindvalgrind包含几个标准的工具,它们是: 1、memcheck memcheck探测程序中内存管理存在的问题。它检查所有对内存的读/写操作,并截取所有的malloc/new/free/delete调用。因此memcheck工具能够探测到以下问题: 1)使用未初始化的内存2)读/写已经被释放的内存3)读/写内存越界4)读/写不恰当的内存栈空间5)内存泄漏6)使用malloc/new/new[]和free/delete/delete[]不匹配。2、cach 阅读全文

posted @ 2012-08-28 11:45 romi 阅读(6678) 评论(0) 推荐(0) 编辑