单链表插入的源代码怎么写啊


ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤㅤ
ㅤ  ⁣ㅤ

遍历链表,找到值得插入位置,或者指定的序号,将新节点的next指向该位置原来的节点,该位置的前一个节点的next指向新节点即可

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define N 10
struct list
{
    int max;
    int n;
    int *a;
};
typedef struct list pseqlist;
pseqlist *creatmulllist_seq() //创建空表
{
    struct list *palist;
    palist = (pseqlist *)malloc(sizeof(pseqlist));
    if (palist != NULL)
    {
        palist->a = (int *)malloc(sizeof(int) * N);
        if (palist->a)
        {
            palist->n = 0;
            return palist;
        }
    }
}
pseqlist *insert_sep(pseqlist *p, int m) //输入数组
{
    int i, k;
    p->n = m;
    printf("输入数组:\n");
    for (i = 0; i < m; i++)
    {
        scanf("%d", &k);
        p->a[i] = k;
    }
    return p;
}
int insertPost_sep(pseqlist *q, int p, int x) //插入x
{
    int i;
    if (p < 0 || p > q->n - 1)
        return 0;
    else
    {
        q->n++;
        for (i = q->n - 1; i > p; i--)
            q->a[i] = q->a[i - 1];
        q->a[p] = x;
        return 1;
    }
}
void main()
{
    int m, p, x, i, k;
    printf("输入数组的长度:\n");
    scanf("%d", &m);
    pseqlist *palist;
    palist = creatmulllist_seq(); //创建空表
    insert_sep(palist, m);        //输入数组
    printf("输入要插入的位置:\n");
    scanf("%d", &p);
    printf("输入要插入的数:\n");
    scanf("%d", &x);
    k = insertPost_sep(palist, p, x); //插入
    if (k)
        for (i = 0; i < palist->n; i++)
            printf("%3d", palist->a[i]);
    else
        printf("没有插入成功");
    printf("\n");
}

img

https://blog.csdn.net/weixin_45134977/article/details/97578901?spm=1001.2014.3001.5501
可以参考下博客噢写的很仔细了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632