一维数组和单链表插入、删除、修改
一、一维数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
//一维数组
int a[12];
//以10个数字为例子
for(int i=1;i<=10;i++) cin>>a[i];
//在第n和m之间插入一个数k
for(int i=10;i>=m;i--) a[i+1]=a[i];
a[m]=k;
//删除第n和m之间的一个数
for(int i=m;i<=10;i++) a[i]=a[i+1];
//修改第n个数为k
a[n]=k;
}
二、单链表
#include<bits/stdc++.h>
using namespace std;
const int N=1000;
int main()
{
//e[N]存节点值,ne[N]记录指向,idx索引
int head,e[N],ne[N],idx=1;
ne[0]=0;
//在第m个插入后加一个k
e[idx]=k;//第idx个为k
ne[idx]=ne[m];//idx的下一位指向原来第m的下一位
ne[m]=idx;//第m的下一位的索引变为idx
idx++;//索引+1
//删除第m插入后的一个数
ne[m]=ne[ne[m]];//直接指向m的下下个节点
//修改第m个插入的值为k
e[m]=k;
}
线性结构思维导图
graph TD
A[线性结构] --> B[线性表]
A --> C[栈]
A --> D[队列]
B --> B1[顺序表]
B1 --> B2[链表]
B2 --> B21[单链表]
B2 --> B22[双链表]
B2 --> B23[循环链表]
C --> C1[先进后出]
D --> D1[先进先出]

浙公网安备 33010602011771号