![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
告别学渣
这个作者很懒,什么都没留下…
展开
-
单链表的基本操作
单链表的操作是数据结构中最基础的,每次看完就会忘,总是记个大概。总结一下:单链表中的单位是结点,那么结点中包含数据域和指针域,指针域指向下一个结点的地址。1、定义结点(定义结构)://定义结点结构typedef struct LNode{ int data; //数据域 struct LNode *next; //指针域}LNode...原创 2019-08-02 18:47:11 · 133 阅读 · 0 评论 -
单链表的逆置
单链表的逆置(注:本代码没有头结点)1.首先按照正常顺序 p1 , p2 ,p32.然后在p2 -> next = p1;的时候已经实现第一步逆转(这个时候p2的next已经指向了p1)3.然后在依次将指针右移 p1 = p2;p2 = p3;(给本人理解:地址的赋值是指向,和值传递不同)4.这样原来的首节点已经是末结点了,把它的next指针置空作为结尾。5.把移动到...原创 2019-08-02 22:46:25 · 455 阅读 · 0 评论 -
队列的基本操作
队列的链式结构实现:#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace std;// 定义结点结构typedef struct node{ int data; struct node *next;}node;// 定义队列结构typedef ...原创 2019-08-20 09:58:49 · 124 阅读 · 0 评论 -
栈的基本操作
在C++的容器适配器中直接有栈类型,也属于模板类,头文件为 <stack>在严蔚敏版数据结构中,给栈分配了初始容量,且在入栈操作时加入了容量判断,若当前容量已满则再扩大容量空间。其中设定了两个指针,一个栈顶指针,一个栈底指针。栈顶指针用于返回出栈元素,始终指向栈顶元素的上方,栈底指针用于扩大容量和与栈顶指针相比较判空等操作。以下为简单的栈操作,栈的模板类的表现形式:#in...原创 2019-08-20 11:28:01 · 162 阅读 · 0 评论 -
排序算法学习(一)
稳定排序:在排序过程中,有相等的元素,在经过排序之后这些相等的元素之间相对次序保持不变,则该排序为稳定排序。反之,则为不稳定排序。1.快速排序:不稳定排序,时间复杂度平均为O(n log n),最坏情况下O(n^2),空间复杂度为O(log n)#include <iostream>using namespace std;int getIndex(int *a, i...原创 2019-08-21 13:39:34 · 174 阅读 · 0 评论 -
排序算法学习(二)
3.归并排序:稳定排序,时间复杂度最差、最好、平均为O(n log n),空间复杂度为O(n)#include <iostream>using namespace std;// 二路归并(可以理解为两个有序数组的合并)void merge(int *a,int low, int mid, int high){ int *A = a + low; int lb = m...原创 2019-09-03 16:05:42 · 166 阅读 · 0 评论 -
排序算法学习(三)
4.选择排序:不稳定排序,时间复杂度最差、平均为O(n^2),空间复杂度为1int main(){ int a[] = { 49,38,65,97,76,13,27,49 }; int N = sizeof(a) / sizeof(int); for (int i = 0; i < N - 1; i++) { int min = a[i]; int minIndex ...原创 2019-09-04 10:20:36 · 217 阅读 · 0 评论