摘要:```cpp//输入的时候加不加空格都行,因为是前缀表达式.//但是输出中应该要加空格,因为有可能几个数字是挨在一起的情况.//has not complete the `to_prifix`, because i do not know how to do it.#include #include...
阅读全文
随笔分类 - 5数据结构
基础要打牢
摘要:```cpp//输入的时候加不加空格都行,因为是前缀表达式.//但是输出中应该要加空格,因为有可能几个数字是挨在一起的情况.//has not complete the `to_prifix`, because i do not know how to do it.#include #include...
阅读全文
摘要:```cpp#include #include using namespace std;struct Node{ int val; Node* left; Node* right; Node(int x_) : val(x_), left(NULL), right(NULL){}};void InO...
阅读全文
摘要:### 快速排序```C#include int partition(int *a, int first, int last){ int temp = a[first]; while (last > first){ while (last > first && a[last] >= temp) l...
阅读全文
摘要:1、数组是一个数据元素的集合,元素之间具有线性关系,但是,元素可以参与多个线性关系;广义表是一个数据元素的集合,元素之间具有线性关系,但其前驱后继可以是一般元素,也可以是一个表。 1)数组(Array):简单说是数据类型相同的一组元素的有序集合。元素在集合中的序是由一组称做“下标”的值确定的,一个数据元素称为一个数组元素。 一个数据元素的位置由多个下标值确定,即参与多个线生关系,每个关系上都有前驱...
阅读全文
摘要:串是一种线性表,它特殊在: 1)数据元素都是来自字符集! 2)由于数据元素特殊,它的操作有些不同于一般线性表,例如:操作的对象一般是对子串(即一组数据元素)而不是单个数据元素! 1、串(String):简单说,它是有限字符集中的零个或多个字符组成的有限序列。 它的操作对象一般不再是单个数据元素,而是一组数据元素。 2、串的术语: 空串:长度为零的字符串,n=0; 空格串:数据元素都是空格...
阅读全文
摘要:1、队列(Queue):是一种特殊的线性表(数据元素之间的关系是线性关系),其插入、删除分别在表的两端进行,一端只能插入,另一端只能删除。2、术语队首(front):进行删除的一端;队尾(rear):进行插入的一端;入队:在队尾插入一个元素;出队:在队首删除一个元素;3、特点由于限制了插入、删除分别...
阅读全文
摘要:1、存储方式:同一般线性表的单链式存储结构完全相同。但是应该确定链表的哪端对应于栈顶,如果链表尾作为栈顶,则入,出栈操作的时间复杂性为O(n)。如果链表头作为栈顶,则入、出栈操作的时间复杂性为O(1)。所以,一般把链表的表头作为栈顶。2、实现1)栈初始化S=(LStack*)malloc(sizeo...
阅读全文
摘要:1、栈(Stack):是一种特殊的线性表(数据元素之间的关系是线性关系),其插入、删除只能在表的一端进行,另一端固定不动。2、术语:栈顶(top):插入、删除的一端;栈底(bottom):固定不动的一端;入栈(push):又称压入,即插入一个元素;出栈(pop):又称弹出,即删除一个元素;3、栈的操...
阅读全文
摘要:1、存储方式:用任意存储空间单元来存放线性表的各个元素,为了能体现元素之间的逻辑关系(线性),在存放每个元素的同时,也存放相关元素的信息(相关元素的存储地址),即用指针来表示元素之间的逻辑关系。存储一个元素占用的空间称为一个结点。2、特点:1)存储空间不一定连续;2)逻辑关系是由指针来体现的;3)逻...
阅读全文
摘要:1、数据结构描述:Linear_List=(D,R)D={ai|ai∈D0 i=1,2,.... n>=0}R={N}N={|ai-1,ai∈D0 i=2,3,4,...}D0是某个数据对象2、术语:直接前驱:ai-1是ai的前驱 i=2,3,4,...n直接后继:ai+1是ai的后继 i...
阅读全文
|