![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 64
Rainloving
本人性格开朗,与人和善,有合作精神,有发现问题、解决问题的能力。
展开
-
c实现带表头的单链表的创建、测长及打印
#include #include using namespace std;typedef struct student{int data;struct student *next;} node;//带头节点node *create(){ node *head, *p, *s; int x, cycle=1; head = (node *)malloc(s原创 2015-03-27 21:10:42 · 1389 阅读 · 0 评论 -
Go语言中的队列和堆栈实例代码
原文:http://outofmemory.cn/code-snippet/5468/Go-language-queue-stack-example-codegolang,其实我的实现是利用container/list包实现的,其实container/list包很强大package mainimport ( "fmt" "container/list")func main() {转载 2017-01-05 13:50:22 · 2991 阅读 · 0 评论 -
给定一个字符串,去重(重复的字符只保留第一次出现的)
源码(c++):#include #include using namespace std;int main(){ string str; cin>>str; int a[256]={0, 0}; int strLen = str.size(); for(int i=0; i<strLen; ++i){ a[str[i]]++;原创 2015-10-15 11:42:41 · 6504 阅读 · 2 评论 -
在C++中实现foreach循环,比for_each更简洁!
原文:http://blogread.cn/it/article/2570?f=srpython,c#,java里面都有类似于foreach的结构,stl里面虽然有for_each这个函数,但是感觉使用还是太繁琐了一些,所以就自己实现了一个。 先来看看stl里面的for_each函数,官方文档上的原型如下:1Function for_each (Inp转载 2015-07-23 22:46:58 · 9773 阅读 · 0 评论 -
读书笔记:实现string类的构造函数、拷贝构造函数、析构函数、重载运算符=
#include #include #include using namespace std;class MyString{public: MyString(const char* pData = NULL); MyString(const MyString& other); ~MyString(); MyString& MyString::operat原创 2015-07-22 10:19:48 · 1447 阅读 · 0 评论 -
读书笔记:自定义函数实现字符串处理函数----strlen、strcmp、strcat、strcpy
一、strlen函数。int strlen(const char* str){ assert(str!=NULL); int len = 0; while((*str++)!='\0') len++; return len;}//无中间变量int strlen1(const char* str){ assert(str!=NULL原创 2015-07-21 15:36:28 · 1606 阅读 · 0 评论 -
二叉树的非递归遍历
一、前序遍历。比较简单。如果根非空,进栈;如果栈非空,访问栈顶元素,栈顶元素为p,出栈;如果p的右孩非空,右孩进栈;如果p的左孩非空,左孩进栈;循环2,3,4。源码:void preOrderNoRecursion(BinaryTreeNode* root){ stack visitStack; if(root!=NULL) visitStack原创 2015-07-21 14:12:56 · 519 阅读 · 0 评论 -
读书笔记:大端存储方式和小端存储方式和printf函数
大端存储方式和小端存储方式原创 2015-07-20 17:27:42 · 1822 阅读 · 0 评论 -
读书笔记:大小端模式对位域的影响
一、位域有些信息在存储时不占用一个完整的字节,而只需要占用几个甚至一个二进制位。为节省存储空间,并使处理简便,C语言提供了一种数据结构,成为”位域“或”位段“。C与C++允许指定占用特定位数的结构成员。字段的类型应为整型或枚举,接下来是冒号,冒号后面是一个数字,它指定了使用的位数,且可以使用没有名称的字段来提供间距。每个成员都被成为位字段。下面是一个例子。struct reg{ u原创 2015-07-21 09:38:09 · 3673 阅读 · 0 评论 -
linux内存管理(堆栈、数组)
linux内存管理(堆栈、数组)每一个进程都有代码段、数据段、BBS段、堆、栈。linux内存结构每一个进程都有以下区域: * 代码段:代码段是用来存放可执行文件的操作指令,也就是说是它是可执行程序在内存种的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,而不允许写入(修改)操作——它是不可写的,拥有可执行权限。 * 数据段:数据段用来存放可执行文件中已初始化全局变量,换句话说就是存原创 2015-05-24 18:12:49 · 3921 阅读 · 0 评论 -
trie树(字典树)
原文链接:http://www.cppblog.com/bellgrade/archive/2009/10/08/98097.html今天AC了两题trie tree的题目,感觉trie的性质真的是相当的好,而且实现比较简单。它使在字符串集合中查找某个字符串的操作的复杂度降到最大只需O(n),其中n为字符串的长度。trie是典型的将时间置换为空间的算法,好在ACM中一般对空间的要求很宽松。转载 2015-05-20 14:36:07 · 460 阅读 · 0 评论 -
STL中的vector、list、deque、map的数据结构
vector是数组;原创 2015-05-12 20:55:23 · 792 阅读 · 0 评论 -
Unix网络编程:阻塞、非阻塞、同步io、异步io的区别
在《Unix 网络编程》一书中讲到:在进行读操作的时候,一般要经历两个步骤,分别是内核准备数据(waiting for the data to be ready)和将数据从拷贝到数据区(copying the data from kernel to the process)。然后对应的两个阶段的不同操作形式就出现了五个I/O模型,分别是:1)阻塞IO(blocking IO),两个阶段全部阻塞...原创 2015-05-06 17:08:19 · 1933 阅读 · 0 评论