
数据结构
zi_yang_
永不放弃!
展开
-
数据结构:数组
一、一维数组(最简单的数据结构)定义:占据一块连续内存并按照顺序存储数据。创建时先指定大小,分配内存。优点:时间效率高。实现简单的hash(下标为key,对应的数据为value)缺点:空间效率差。如果我们只在数组中存一个数字,也先分配所有的内存。扩展:动态数组(解决空间效率差),手段:扩容后,复制内容到新的数组,释放之前的内存。时间性能变差,因此,要尽量减少改变数组容量的次数。数组与指针:声明一个...原创 2018-03-01 12:52:39 · 765 阅读 · 0 评论 -
数据结构:字符串
二.字符串定义:若干字符组成的序列c++/c与Java中字符串的对比:c/c++中每个字符串都是以‘\0‘作为结尾;Java中却不是这样的,Java中的一切都是对象,对象有长度,编译器可以确定输出的字符个数。题目:请实现一个函数,把字符串中的每一个空格替换成‘%20‘,例如,输入为"we are happy",则输出为:"we%20are%20happy"思路:要弄清楚两点:第一,在原串上面干,字...原创 2018-03-01 13:29:06 · 468 阅读 · 0 评论 -
数据结构:链表
链表(创建,尾部添加,删除,打印(从头到尾),打印(从尾到头(stack),打印从尾到头(递归(会导致栈溢出))面试中最频繁的数据结构。定义:由指针把若干个节点链接成链状的结构。特点:A.链表存储的数据在地址空间上可连续,可不连续。B.链表中的每一个节点都包括数据和指向下一个地址的指针。C.查找数据的时间复杂度为O(n),方便数据的增删。一、单向链表的C语言实现链表作为一种基本的数据结构在程序开发...原创 2018-03-01 14:00:26 · 226 阅读 · 0 评论 -
数据结构:树
树(二叉树(创建,打印,删除))定义:除了根节点之外,每个结点都有一个父节点,除了叶子节点外所有的节点都有一个或者多个子节点。二叉树:每个节点最多有两个叶子节点遍历:按照某个顺序访问树中的所有节点。 三种常见的遍历:前序遍历,中序遍历,后续遍历(可以用递归和循环两种方式实现)可实现的题目:二叉树的深度,树的子结构,二叉树的后续遍历。从上到下遍历二叉树(宽度优先遍历)。二查搜索树:左子结点总是小于等...原创 2018-03-01 22:14:24 · 284 阅读 · 0 评论 -
数据结构:栈和队列
五.栈与队列栈定义:用来存储函数调用时各个函数的参数,返回地址及临时变量等。特点:先进后出,不考虑排序。队列特点:先进先出。题目:用两个栈实现一个队列,队列申明如下,实现它的两个函数appendTail和deleteHead,即:队列的尾部插入节点,头部删除节点。思路:自定义一个函数模板CQueue,它有public属性或方法:构造函数,析构函数,在尾部添加节点void appendTail(co...原创 2018-03-03 16:39:01 · 357 阅读 · 0 评论