一维数组和单链表插入、删除、修改

一、一维数组

#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[先进先出]
posted @ 2026-09-03 21:48  We_L  阅读(4)  评论(0)    收藏  举报