mirror of
https://github.com/142vip/408CSFamily.git
synced 2026-02-03 02:23:38 +08:00
feat: 更新文档
This commit is contained in:
@@ -1,30 +1,22 @@
|
||||
/*
|
||||
* @Description: 折半插入算法【伪代码】
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-04-15 18:27:59
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-27 12:19:13
|
||||
*/
|
||||
|
||||
// 折半查找
|
||||
void BinaryInsertSort(ElemType Arr[],int n){
|
||||
int i,j,lowIndex,heightIndex,midIndex;
|
||||
int i,j,lowIndex,highIndex,midIndex;
|
||||
|
||||
for(i=2;j<=n;i++){
|
||||
// 将待排序的元素暂存在Arr[0]上
|
||||
Arr[0]=Arr[i];
|
||||
|
||||
lowIndex=1; // 左侧子表 折半查找起始位置
|
||||
heightIndex=i-1; // 左侧子表 折半查找结束位置
|
||||
highIndex=i-1; // 左侧子表 折半查找结束位置
|
||||
|
||||
while(lowIndex<=heightIndex){
|
||||
while(lowIndex<=highIndex){
|
||||
|
||||
// 左侧有序子表的中间位置角标
|
||||
midIndex=(lowIndex+heightIndex)/2;
|
||||
|
||||
if(Arr[midIndex].key>Arr[0].key){
|
||||
// 小于中间元素,插入位置在子表左侧
|
||||
heightIndex=mid-1
|
||||
highIndex=mid-1
|
||||
}else{
|
||||
// 大于或者等于中间元素,插入位置在子表右侧
|
||||
lowIndex=midIndex+1;
|
||||
@@ -33,11 +25,11 @@ void BinaryInsertSort(ElemType Arr[],int n){
|
||||
|
||||
// 跳出循环需要(lowIndex>heightIndex),说明待插入位置的角标在heightIndex之后,为 heightIndex+1,此时需要将(heightIndex,i)之间的所有元素后移
|
||||
|
||||
for(j=i-1;j>heightIndex;--j){
|
||||
for(j=i-1;j>highIndex;--j){
|
||||
Arr[j+1]=Arr[j]
|
||||
}
|
||||
|
||||
// 后移完成后,将元素Arr[0]赋值到位置(hightIndex+1)上
|
||||
Arr[heightIndex+1]=Arr[0]
|
||||
// 后移完成后,将元素Arr[0]赋值到位置(highIndex+1)上
|
||||
Arr[highIndex+1]=Arr[0]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,11 @@
|
||||
/*
|
||||
* @Description: 折半插入排序【JavaScript版本】
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-27 12:35:17
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-27 12:50:00
|
||||
*/
|
||||
|
||||
/**
|
||||
* 折半插入排序
|
||||
* @param arr
|
||||
* @param len
|
||||
* 折半插入排序【JavaScript版本】
|
||||
*/
|
||||
function binaryInsertSort(arr, len) {
|
||||
// 数组长度校验【非必须】
|
||||
len = arr.length === len ? len : arr.length
|
||||
|
||||
len = arr.length === len
|
||||
? len
|
||||
: arr.length
|
||||
|
||||
for (let i = 1; i < len; i++) {
|
||||
const temp = arr[i]
|
||||
|
||||
@@ -1,13 +1,4 @@
|
||||
/*
|
||||
* @Description: 冒泡排序
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-31 08:24:18
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-04-06 07:26:15
|
||||
*/
|
||||
|
||||
|
||||
// 冒泡排序
|
||||
void BubbleSwapSort(ElemType A[], int n){
|
||||
|
||||
for(i=0;i<n-1;i++){
|
||||
@@ -18,7 +9,7 @@ void BubbleSwapSort(ElemType A[], int n){
|
||||
|
||||
for(j=n-1;j>i;j--){
|
||||
if(A[j-1].key>A[j].key){
|
||||
|
||||
|
||||
// 将两个元素A[j-1]、A[j]进行交换,有多种方法
|
||||
swap(A[j-1],A[j])
|
||||
// 确认已发生交换
|
||||
@@ -35,7 +26,7 @@ void BubbleSwapSort(ElemType A[], int n){
|
||||
|
||||
/**
|
||||
* 加减法实现两个元素值互换
|
||||
*
|
||||
*
|
||||
*/
|
||||
void swap(int a, int b){
|
||||
// 此时a为两值的和
|
||||
@@ -48,8 +39,8 @@ void swap(int a, int b){
|
||||
|
||||
/**
|
||||
* 临时变量实现两个元素值的互换
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
void swap(int a,int b){
|
||||
int temp;
|
||||
temp=a;
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
/*
|
||||
* @Description: 冒泡排序【JavaScript版本】
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-04-06 07:26:59
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-04-06 08:01:19
|
||||
|
||||
|
||||
/**
|
||||
* 冒泡排序【JavaScript版本】
|
||||
*/
|
||||
|
||||
|
||||
function BubbleSort(arr, len) {
|
||||
// 校正数组的长度
|
||||
len = arr.length === len ? len : arr.length
|
||||
@@ -38,20 +33,6 @@ function BubbleSort(arr, len) {
|
||||
return arr
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 加减法交换元素的值
|
||||
* 注意:JavaScript中使用需要考虑到作用域的问题
|
||||
* @param a
|
||||
* @param b
|
||||
*/
|
||||
function swap(a, b) {
|
||||
a = a + b
|
||||
b = a - b
|
||||
a = a - b
|
||||
}
|
||||
|
||||
|
||||
const initArr = [1, 5, 8, 3, 2, 9, 16]
|
||||
console.log(`冒泡排序前:${initArr}`)
|
||||
const sortedArr = BubbleSort(initArr, 7)
|
||||
|
||||
@@ -9,102 +9,81 @@
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* @Description: 单链表头插法
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-04 23:38:04
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2020-03-04 23:39:16
|
||||
*/
|
||||
// 单链表头插法
|
||||
LinkList CreateListWithStartNode(LinkList &L){
|
||||
|
||||
|
||||
LNode *s;
|
||||
int x;
|
||||
L=(LinkList)malloc(sizeof(LNode)); // 创建头结点L
|
||||
L->next=NULL; // 初始化空链表
|
||||
|
||||
|
||||
// 控制台输入值
|
||||
scanf("%d",&x);
|
||||
|
||||
|
||||
// 输入9999 表示结束
|
||||
while(x!==9999){
|
||||
// 开辟新结点存储空间
|
||||
s=(LNode*)malloc(sizeof(LNode));
|
||||
s=(LNode*)malloc(sizeof(LNode));
|
||||
// 结点数据域赋值
|
||||
s->data=x;
|
||||
s->data=x;
|
||||
// 修改指针,新结点插入表中【注意:L->next为头结点的指针域】
|
||||
s->next=L->next;
|
||||
L->next=s;
|
||||
scanf("%d",&x);
|
||||
}
|
||||
|
||||
|
||||
// 返回单链表
|
||||
return L;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* @Description: 单链表尾插法
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-04 23:38:04
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2020-03-04 23:39:16
|
||||
*/
|
||||
// 单链表尾插法
|
||||
LinkList CreateListWithEndNode(LinkList &L){
|
||||
|
||||
|
||||
|
||||
|
||||
int x; // 输入结点值
|
||||
L=(LinkList)malloc(sizeof(LNode));
|
||||
LNode *s; // 新结点s
|
||||
LNode *r=L; // r为尾指针
|
||||
|
||||
|
||||
// 控制台输入值
|
||||
scanf("%d",&x);
|
||||
|
||||
|
||||
while(x!==9999){
|
||||
// 开辟新结点存储空间
|
||||
s=(LNode *)malloc(sizeof(LNode));
|
||||
|
||||
|
||||
// 新结点s的数据域赋值为x
|
||||
s->data=x;
|
||||
// 单链表L的尾指针指向新的结点s
|
||||
r->next=s;
|
||||
|
||||
|
||||
// 指针r指向新的表尾结点
|
||||
r=s;
|
||||
|
||||
scanf("%d",&x);
|
||||
}
|
||||
|
||||
|
||||
// 表尾指针置空【重要】
|
||||
r->next=NULL;
|
||||
|
||||
// 返回单链表
|
||||
return L;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* @Description: 单链表按序号查找
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-04 23:38:04
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2020-03-04 23:39:16
|
||||
*/
|
||||
// 单链表按序号查找
|
||||
LNode *GetElem(LinkList L,int i){
|
||||
int j=1; // 查询计数,初始为1
|
||||
LNode *p=L->next; // 单链表头结点指针赋值给指针p
|
||||
|
||||
|
||||
|
||||
// 第0个元素,则指向头结点,返回头结点
|
||||
if(i==0){
|
||||
// 头结点包含数据域和指针域
|
||||
return L;
|
||||
}
|
||||
|
||||
|
||||
// 不等于0,却小于1,则i为负数无效,直接返回NULL,查询结果空;
|
||||
if(i<1){
|
||||
return NULL;
|
||||
@@ -112,7 +91,7 @@ LNode *GetElem(LinkList L,int i){
|
||||
|
||||
// p存在且计数没有走到初始i的位置
|
||||
while(p&&j<i){
|
||||
|
||||
|
||||
// 指针后移
|
||||
p=p->next;
|
||||
|
||||
@@ -125,19 +104,12 @@ LNode *GetElem(LinkList L,int i){
|
||||
|
||||
// 跳出循环,返回第i个结点的指针
|
||||
return p;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* @Description: 单链表按值查找
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-04 23:38:04
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2020-03-04 23:39:16
|
||||
*/
|
||||
//单链表按值查找
|
||||
LNode *LocateElem(LinkList L,ElemType e){
|
||||
|
||||
|
||||
// 指针【哨兵】
|
||||
LNode *p=L->next;
|
||||
// 从第1个结点开始查找数据域(data)为e的结点
|
||||
@@ -145,11 +117,11 @@ LNode *LocateElem(LinkList L,ElemType e){
|
||||
// 无法匹配,指针后移
|
||||
p=p->next;
|
||||
}
|
||||
|
||||
|
||||
// 注意:p为NULL的时候,说明单链表已经遍历的尾结点了,跳出循环,没有找到目标结点;
|
||||
|
||||
// 查找到第1个匹配的结点,跳出循环,返回结点指针
|
||||
return p;
|
||||
//
|
||||
//
|
||||
}
|
||||
|
||||
|
||||
@@ -15,14 +15,14 @@ typedef struct LinkNode{
|
||||
|
||||
// 更为详细的定义
|
||||
|
||||
typedef struct StackNode
|
||||
typedef struct StackNode
|
||||
{
|
||||
int data;//结点数据域
|
||||
struct StackNode* next;//结点指针域
|
||||
}StackNode,* Linktop;
|
||||
|
||||
|
||||
//链栈的数据结构
|
||||
typedef struct LinkStack
|
||||
typedef struct LinkStack
|
||||
{
|
||||
Linktop top; //栈顶结点,定义了一个指向上个结构体的指针
|
||||
int count;//元素个数
|
||||
@@ -47,20 +47,18 @@ bool linkStackPushNode(LinkStack* linkStack,int e){
|
||||
// 开辟栈结点元素内存控件
|
||||
StackNode* node = (StackNode*)malloc(sizeof(StackNode));
|
||||
// 新结点指针域指向链表,即栈顶指针位置,元素加入链表
|
||||
node->next = linkStack->top;
|
||||
node->next = linkStack->top;
|
||||
// 新结点数据域赋值
|
||||
node->data = e;
|
||||
// 元素进栈,移动栈顶指针,指向新入栈的元素
|
||||
linkStack->top = node;
|
||||
// 链栈元素总数+1
|
||||
linkStack->top = node;
|
||||
// 链栈元素总数+1
|
||||
linkStack->count++;
|
||||
//链栈入栈成功,返回true
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* @Description: 基于单链表链栈的出栈操作
|
||||
* @Version: Beta1.0
|
||||
@@ -81,10 +79,10 @@ bool linkStackPopNode(LinkStack* linkStack,int *e){
|
||||
// 结点元素数据域赋值给变量e
|
||||
*e = linkStack->data;
|
||||
// 移动栈顶指向,栈顶指针指向待出栈结点的后继结点
|
||||
linkStack->top = node->next;
|
||||
linkStack->top = node->next;
|
||||
// 变量e已被赋值,释放链栈出栈元素的内存控件
|
||||
free(node);
|
||||
// 链栈元素个数-1
|
||||
free(node);
|
||||
// 链栈元素个数-1
|
||||
linkStack->count--;
|
||||
// 出栈成功,返回true.
|
||||
return true;
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
|
||||
void QuickSort(ElemType A[] , int low , int high){
|
||||
|
||||
// low > high 表角标越界,low=high 子表只有一个元素,不需要进行快排,已经有序
|
||||
if(low<high){
|
||||
|
||||
@@ -36,7 +35,7 @@ int Partition(ElemType A ,int low , int high){
|
||||
while(low<high && A[high]>=pivot) --high
|
||||
A[low]=A[high] // 比pivot小的都移到左表 注意--high 从后往前遍历
|
||||
|
||||
while(low<high && A[low]<=pivot ) ++low
|
||||
while(low<high && A[low]<=pivot ) ++low
|
||||
A[high]=A[low] // 比pivot大的都移到右表,注意++low 从前往后遍历
|
||||
}
|
||||
|
||||
|
||||
@@ -11,9 +11,10 @@
|
||||
/**
|
||||
*
|
||||
* 数组的希尔排序
|
||||
* - 返回已排序的数组,从小到大
|
||||
* @param {Array} arr 待排序数组
|
||||
* @param {int} len 数组长度,可校验
|
||||
* @returns 返回已排序的数组,从小到大
|
||||
* @returns
|
||||
*/
|
||||
function shellSort(arr, len) {
|
||||
// 校对数组长度
|
||||
@@ -60,37 +61,6 @@ function specialStraightInsertSort(arr, len, increment, groupIndex) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 插入排序
|
||||
* @param{Array} arr 待排序的数组
|
||||
* @param{int} len 数组arr的长度,可以用arr.length()计算得到
|
||||
*/
|
||||
function straightInsertSort(arr, len) {
|
||||
// 重新确定数组长度
|
||||
len = arr.length === len ? len : arr.length
|
||||
|
||||
// 从第二个元素开始循环,共len-1次
|
||||
for (let i = 1; i < len; i++) {
|
||||
// 后面的额元素比前面的元素小,需要把前面大于哨兵元素有序序列,移动后面一位
|
||||
if (arr[i] < arr[i - 1]) {
|
||||
let j
|
||||
// 哨兵元素
|
||||
const temp = arr[i]
|
||||
for (j = i - 1; arr[j] > temp; --j) {
|
||||
// 后移
|
||||
arr[j + 1] = arr[j]
|
||||
}
|
||||
// 跳出循环逻辑,出现arr[j] > arr[j-1]
|
||||
|
||||
// 哨兵即待排序的
|
||||
arr[j + 1] = temp
|
||||
}
|
||||
}
|
||||
|
||||
return arr
|
||||
}
|
||||
|
||||
|
||||
const dealArr = [5, 8, 2, 16, 3, 9, 1]
|
||||
console.log('插入排序前:', dealArr)
|
||||
const sortResult = shellSort(dealArr, 7)
|
||||
@@ -99,8 +69,9 @@ console.log('插入排序后:', sortResult)
|
||||
|
||||
/**
|
||||
* 简化的希尔排序
|
||||
* - 返回已排序号的数组,从小到大
|
||||
* @param {Array} arr
|
||||
* @returns 返回已排序号的数组,从小到大
|
||||
* @returns
|
||||
*/
|
||||
function shellSortBetter(arr) {
|
||||
const len = arr.length
|
||||
@@ -108,10 +79,10 @@ function shellSortBetter(arr) {
|
||||
while (increment !== 0) {
|
||||
for (let i = increment; i < len; i++) {
|
||||
const temp = arr[i]
|
||||
for (var j = i - increment; j >= 0 && temp < arr[j]; j -= increment) {
|
||||
for (let j = i - increment; j >= 0 && temp < arr[j]; j -= increment) {
|
||||
arr[j + increment] = arr[j]
|
||||
}
|
||||
arr[j + increment] = temp
|
||||
arr[i + increment] = temp
|
||||
}
|
||||
increment = Math.floor(increment / 2)
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
* @LastEditTime: 2021-02-23 07:48:26
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
// 基础结构体
|
||||
define MaxSize 50;
|
||||
@@ -60,7 +58,7 @@ bool ListDelete(SqList &L, int i, ElemType &e){
|
||||
if(L.length >= MaxSize){
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// 引用变量e赋值
|
||||
e=L.data[i-1]
|
||||
|
||||
@@ -70,7 +68,7 @@ bool ListDelete(SqList &L, int i, ElemType &e){
|
||||
L.data[j-1]=L.data[j];
|
||||
}
|
||||
|
||||
// 此时,表L中的表尾元素和倒数第二个元素值一样,将表的长度-1
|
||||
// 此时,表L中的表尾元素和倒数第二个元素值一样,将表的长度-1
|
||||
|
||||
// 表长度减1
|
||||
L.length--;
|
||||
|
||||
@@ -1,15 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:54:07
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:10:04
|
||||
-->
|
||||
|
||||
|
||||
|
||||
## 基础概念
|
||||
|
||||
### 数据
|
||||
|
||||
@@ -1,16 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:55:06
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:08:22
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
## 数据结构三要素
|
||||
|
||||
- 数据的逻辑结构
|
||||
|
||||
@@ -1,15 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:55:28
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:11:34
|
||||
-->
|
||||
|
||||
|
||||
|
||||
## 算法和算法评价
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,2 @@
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2022-04-24 08:09:44
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 09:04:02
|
||||
-->
|
||||
|
||||
|
||||
|
||||

|
||||
@@ -1,11 +1,3 @@
|
||||
<!--
|
||||
* @Description: 恶补算法
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2022-04-19 08:56:55
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-19 08:56:56
|
||||
-->
|
||||
|
||||
## 算法恶补
|
||||
|
||||
|
||||
@@ -1,15 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:57:27
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-23 23:56:27
|
||||
-->
|
||||
|
||||
|
||||
|
||||
# 线性表的基础概念和基本操作
|
||||
|
||||
> 强调线性表是一种逻辑结构,不是存储结构
|
||||
|
||||
@@ -1,14 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:57:52
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:15:49
|
||||
-->
|
||||
|
||||
|
||||
# 线性表的顺序表示
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,3 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:58:40
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 08:07:59
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 线性表的链式表示
|
||||
|
||||
顺序表的插入、删除操作需要移动大量元素,影响了运行效率(虽然时间复杂度为O(1)的情况也存在)。
|
||||
|
||||
@@ -1,16 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:59:05
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 08:08:04
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 双链表
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:59:27
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 08:08:08
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 循环链表
|
||||
|
||||
- 循环单链表
|
||||
|
||||
@@ -1,16 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 21:59:47
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 08:08:15
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 静态链表
|
||||
|
||||
> 借助数组来描述线性表的链式存储结构,结点元素同样存在数据域`data`和指针域`next`
|
||||
|
||||
@@ -1,15 +1,3 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 22:00:10
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 08:08:20
|
||||
-->
|
||||
|
||||
|
||||
|
||||
# 顺序表和链表的比较
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +1,5 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 22:00:36
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:18:14
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 存储结构的选取
|
||||
|
||||
|
||||
|
||||
### 基于存储的考虑
|
||||
|
||||
- 对线性表的长度和存储规模难以估计时,不宜采用顺序表存储
|
||||
|
||||
@@ -1,15 +1,4 @@
|
||||
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-07 22:00:53
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 00:17:56
|
||||
-->
|
||||
|
||||
|
||||
|
||||
# 零碎知识补充
|
||||
|
||||
- 无论是链表的插入还是删除操作,必须保证不断链【重要】
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<!--
|
||||
* @Description: 线性表
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2022-04-24 08:10:42
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2022-04-24 09:03:44
|
||||
-->
|
||||
|
||||
# 线性表
|
||||
|
||||

|
||||
@@ -1,14 +1,3 @@
|
||||
<!--
|
||||
* @Description: 基本概念和基本操作
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-01-11 23:56:02
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-12 00:02:55
|
||||
-->
|
||||
|
||||
|
||||
|
||||
# 基本概念和基本操作
|
||||
|
||||
`栈`: 只允许在一端进行插入或者删除操作的**线性表**,`后进先出的线性表`。
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
<!--
|
||||
* @Description: 栈的顺序存储结构
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-01-15 16:57:37
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-12 08:05:50
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 栈的顺序存储结构
|
||||
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<!--
|
||||
* @Description: 栈的链式存储结构
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-12 08:15:40
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-13 17:05:26
|
||||
-->
|
||||
|
||||
|
||||
# 栈的链式存储结构
|
||||
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<!--
|
||||
* @Description: 队列的基本概念和基础操作
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-18 06:15:40
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-14 11:08:32
|
||||
-->
|
||||
|
||||
|
||||
|
||||
# 队列的基本概念和操作
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
<!--
|
||||
* @Description:
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2020-03-1 07:23:48
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-18 23:51:35
|
||||
-->
|
||||
|
||||
|
||||
# 队列的顺序存储结构
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<!--
|
||||
* @Description: 队列的链式存储结构
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-19 08:22:39
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-20 16:10:16
|
||||
-->
|
||||
|
||||
|
||||
# 队列的链式存储结构
|
||||
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
<!--
|
||||
* @Description: 栈和队列的应用
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-14 21:48:49
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-14 21:49:02
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
# 栈和队列的应用
|
||||
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<!--
|
||||
* @Description: 特殊矩阵的压缩存储
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-20 16:18:51
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-20 17:04:44
|
||||
-->
|
||||
|
||||
|
||||
# 特殊矩阵的压缩存储
|
||||
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
<!--
|
||||
* @Description: 数据结构-栈和队列
|
||||
* @Version: Beta1.0
|
||||
* @Author: 【B站&公众号】Rong姐姐好可爱
|
||||
* @Date: 2021-03-22 08:02:29
|
||||
* @LastEditors: 【B站&公众号】Rong姐姐好可爱
|
||||
* @LastEditTime: 2021-03-22 08:02:43
|
||||
-->
|
||||
|
||||
|
||||
# 栈和队列
|
||||
|
||||
### 主要内容
|
||||
|
||||
@@ -120,7 +120,6 @@ deploy_to_github(){
|
||||
|
||||
git config --list
|
||||
|
||||
|
||||
# if you are deploying to https://<USERNAME>.github.io
|
||||
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
|
||||
# if you are deploying to https://<USERNAME>.github.io/<REPO>
|
||||
|
||||
Reference in New Issue
Block a user