数据结构
文章平均质量分 76
banbanlin
这个作者很懒,什么都没留下…
展开
-
数据结构学习笔记:基本知识(二)
·结点的构造:·链表结点的定义:数据域,用来存放数据;指针域,用来存放下一结点的位置。typedef struct Node{ int data; //默认为int型,或者写成 ElementType element struct Node *next;} Node; ·二叉树结点的定义:typedef str原创 2014-07-31 21:24:52 · 554 阅读 · 0 评论 -
写一个名为my2DAlloc的函数,用它开辟一个二维数组
题目写一个名为my2DAlloc的函数,用它开辟一个二维数组。尽可能地少用malloc函数, 并确保可以用arr[i][j]这种形式来访问第i行第j列的元素。解答这道题目最简单的方法就是先开一个数组来存储指向每一行的指针, 然后再为每一行动态地分配空间。这是非常常见的动态申请二维数组空间的方法:123456int** My2DAlloc(int rows, in转载 2014-09-25 16:34:17 · 926 阅读 · 0 评论 -
C语言栈、堆、函数递归
一、栈栈是一个后进先出的压入(push)和弹出(pop)式数据结构。在程序运行时,系统每次向栈中压入一个对象,然后栈指针向下移动一个位置。当系统从栈中弹出一个对象时,最近进栈的对象将被弹出。然后栈指针向上移动一个位置。程序员经常利用栈这种数据结构来处理那些最适合用后进先出逻辑来描述的编程问题。这里讨论的程序中的栈在每个程序中都是存在的,它不需要程序员编写代码去维护,而是由运行是系统自动处理转载 2014-09-23 16:58:02 · 2313 阅读 · 0 评论 -
Stack的三种含义
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈"。 理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分。 含义一:数据结构 stack的第一种含义是一组数据的存放方式,特点为LIFO,即后进先出(Last in, first out)。 在这种数据结构中,数据像积木那样一层层转载 2014-09-23 15:31:21 · 773 阅读 · 0 评论 -
什么是堆和栈,它们在哪儿
问题描述 编程语言书籍中经常解释值类型被创建在栈上,引用类型被创建在堆上,但是并没有本质上解释这堆和栈是什么。我仅有高级语言编程经验,没有看过对此更清晰的解释。我的意思是我理解什么是栈,但是它们到底是什么,在哪儿呢(站在实际的计算机物理内存的角度上看)?在通常情况下由操作系统(OS)和语言的运行时(runtime)控制吗?它们的作用范围是什么?它们的大小由什么决定?哪个更快?转载 2014-09-23 16:21:36 · 563 阅读 · 0 评论 -
数据结构学习笔记:串
串(string)是由零个或者多个字符组成的有限序列,也称为字符串。空串(null string)直接用两双引号表示。空格串,只包含空格的串。空格串是有内容有长度的,而且不止一个空格。子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串,称为主串。串的比较是通过组成串的字符之间的编码来进行的,而字符的编码指的是字符在对应字符集中的序号。定长原创 2014-08-14 21:57:04 · 870 阅读 · 0 评论 -
数据结构学习笔记:图
1 图的存储结构邻接矩阵,顺序存储结构,表示顶点之间相邻关系的矩阵图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。设图G有n个顶点,则邻接矩阵是一个n*n的方阵A。A[i][j] = 1 表示顶点i与顶点j邻接,即i与j之间存在弧或者边。A[i][j] = 0 表示顶点i与顶点j不邻接(0 typedef原创 2014-08-07 21:24:59 · 851 阅读 · 0 评论 -
数据结构学习笔记:二叉树
二叉树:1)每个结点最多只有两个子树原创 2014-08-03 15:41:45 · 625 阅读 · 0 评论 -
数据结构学习笔记:顺序栈与链栈
常用数据结构:(1)数组(Array)(2)栈(Stack) 栈,线性表,只能在一个表的一个固定端点进行数据结点的插入和删除操作。栈,按照后进先出的原则来存储数据,即,先插入的数据将被压入栈底,最后插入的数据在栈顶,读出数据时,从栈顶开始逐个读出。没有数据时,称为空栈。(3)队列(Queue) 线性表,只允许在表的一段进行插入操作,而在另一端进行删除操作。进入插原创 2014-07-31 21:54:40 · 921 阅读 · 0 评论 -
数据结构学习笔记:基本知识
数据结构:包含三方面的内容,数据的逻辑结构、数据的存储结构和数据的运算。三者是一个整体,(1)同一个逻辑结构可以有不同的存储结构。线性表,若是采用顺序方式存储,则是顺序表;若是采用链式方式存储,则是链表;若是采用散列方式存储,则是散列表。(2)同一逻辑结构也可以有不同的数据运算集合。表,若是将插入限制在一端,而删除限制在另一端,则是队列;若是插入和删除限制在同一端,则是栈。原创 2014-07-31 21:53:07 · 985 阅读 · 0 评论 -
链表中倒数第K个结点
题目:输入一个链表,输出该链表中倒数第K个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表有6个结点,从头结点开始它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个结点是值为4的结点。看到这道题目,最直观的想法,就是先算出链表的长度n,然后倒数第k个结点就是顺序的第(n-k+1)个数,不过这样需要2次遍历链表,如果要求只能遍历链表转载 2014-09-18 10:29:53 · 458 阅读 · 0 评论