CALCULATEVEN 2022-09-22 20:16 采纳率: 100%
浏览 47
已结题

在单链表的指定位置插入一个值


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct stu {
    char  data[12];
    struct stu  *next;
};

/*创建链表,参数n是初始化链表时建立的数据个数
prev:指向当前结点的前一个结点
cur:指向当前结点
head:保存表头结点的指针
*/
struct stu* CreatList(int n) {
    int i;
    struct stu *prev,*cur,*head;
    head=(struct stu*)malloc(sizeof(struct stu));
    if(head==NULL) {
        printf("Can't alloc memory\n");
        return NULL;
    }
    prev=head;
    head->data[0]='\0';
    head->next=NULL;
    for(i=1; i<=n; i++) {
        cur=(struct stu*)malloc(sizeof(struct stu));
        if(cur==NULL) {
            printf("Can't alloc memory\n");
            return NULL;
        }
        scanf("%s",cur->data);
        prev->next=cur;
        cur->next=NULL;
        prev=cur;
    }
    printf("链表初始化创建成功!\n");
    return head;
}

/*遍历链表,打印链表数据*/
void Print(struct stu *head) {
    struct stu *cur;
    cur=head->next;
    while(cur!=NULL) {
        printf("%s\n",cur->data);
        cur=cur->next;
    }
}

//在搜索的位置后插入一个新的元素
/*
*param @searchData 要插入位置的元素
*param @insertData 要插入的元素 
*成功后输出“链表插入成功!\n”
*失败后输出"未找到位置,链表插入失败!\n"

*/

struct stu* AddNode(struct stu *head,char searchData[],char insertData[]) {
    int i = 0;
    struct stu *cur,*insert;
    insert=(struct stu*)malloc(sizeof(struct stu));
    cur=head->next;

    while(cur!=NULL) {
        /**************begin********************/


    
    
    
        /********************end****************/
    }
    return head;
}


int main() {
    int number;
    printf("请输入链表长度和元素创建链表:\n");
    scanf("%d",&number);
    char searchData[12],insertData[12];
    struct stu *head,*cur,*fro;
    head=CreatList(number);
    if(head==NULL)
        return -1;
    Print(head);
    printf("请输入要搜索的内容:\n"); 
    scanf("%s",searchData);
    printf("请输入要插入的内容:\n");
    scanf("%s",insertData);
    AddNode(head,searchData,insertData);
    Print(head);
}

依次输出链表节点的元素,判断与需求的是否一致,若一致则找到该节点。若为NULL,则表示搜索失败,该值不存在,这个代码涉及插入以及判断两个部分,并且需要输出时为单列输出。各位有没有好的博客可以借鉴一下。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-23 05:12
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月22日

悬赏问题

  • ¥15 对于这个复杂问题的解释说明
  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败