首页 > 其他分享 >链表

链表

时间:2023-11-10 20:33:24浏览次数:32  
标签:node 结点 int next 链表 插入 节点

单链表插入

  1. 从头开始遍历列表
  2. 找到第i-1个节点
  3. 将指针域指向第i-1个节点的next
  4. 新建节点s值为data
  5. 将next指向data

单链表删除

  1. 从头开始遍历列表
  2. 找到第i-1个节点
  3. 将指针域从第i-1个节点的next指向第i+1个节点
  4. 释放第i个节点的内存空间

代码

参考资料 C语言实现单链表的创建及基本操作

插入

void enterlist(node l,int i,int e){//单链表的插入 在第i个位置 插入值为e的数据元素
node p,s;//新建两个结点指针
int k=0;
if(i<=0)printf("插入的位置不合理\n");
p=l;//从头开始遍历
while(p!=NULL&&k<i-1) {//查找第i-1个结点
p=p->next;
k++;
}
if(p==NULL){//当遍历完整个表也没找到时,说明插入位置不合理
printf("插入的位置不合理\n") ;
}
s=(node
)malloc(sizeof(node));//新建一个结点S
s->data=e;
s->next=p->next;// 因为p时第i-1个结点 故 s的指针域应该指向第i个结点
p->next=s;
printf("插入成功!\n");
}

删除

void dellist(node *l,int i){//单链表删除操作 删除第i个元素
node p,r;
int k=0;
p=l;
while(p->next!=NULL&&k<i-1){
p=p->next;
k++;
}
if(p->next==NULL){
printf("删除位置不合法!\n");
}
r=p->next;
p->next=r->next;//修改指针删除结点
printf("删除的元素是%d\n",r->data);
free(r);//释放内存空间
}

标签:node,结点,int,next,链表,插入,节点
From: https://www.cnblogs.com/9q2z2z/p/17824967.html

相关文章

  • 数据结构入门 — 链表详解_双向链表
    前言数据结构入门—双向链表详解*关注博主,后期持续更新系列文章文章末尾有源码*****感谢观看,希望对你有所帮助*****系列文章第一篇:数据结构入门—链表详解_单链表第二篇:数据结构入门—链表详解_双向链表第三篇:数据结构入门—链表详解_循环链表文章目录前言系列文章什......
  • 利用快慢指针,求链表的中间结点,判断链表是否是环形链表
    前言(1)在学习数据结构链表部分的时候,老师给出了几个题目。其中两个题目采用了快慢指针的技术,感觉有意思,于是写一篇博客记录一下。快慢指针(1)我们先来介绍一下快慢指针技术。这个说起来其实很简单,就是龟兔赛跑问题。(2)兔子跑的比乌龟快,我们可以利用这个特性,来解决一些实际按理。求链表......
  • 链表
    链表单链表插入一个节点的伪代码算法:创建一个新节点newNode,将要插入的数据data存储在newNode中如果链表为空,则将newNode设为头节点,并将next指向NULL如果链表不为空,则将newNode插入到链表的末尾遍历链表,找到最后一个节点lastNode将lastNode的next指向newNode将newNode的n......
  • 实验:C SOCKET 多线程服务端链表分组实现聊天室
    目录......
  • [左神面试指南] 链表[下]篇
    CDxxx两个单链表相交的一系列问题⭐剑指offer链表篇JZ52两个链表的第一个公共结点剑指offer链表篇JZ23链表中环的入口结点publicNodegetIntersectNode(Nodehead1,Nodehead2){if(head1==null||head2==null)returnnull;Nodeloo......
  • 03-链表
    3.链表3.1单向链表和双向链表单项:有一个next,双向:last,next3.2删除链表的倒数第n个结点1.题目https://leetcode.cn/problems/SLwz0R/给定一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]输入:head=[1],n=1......
  • [左神面试指南] 链表[上]篇
    CD48打印两个有序链表的公共部分/*归并*/publicclassCD48_1{publicstaticclassListNode{publicintval;publicListNodenext=null;publicListNode(intval){this.val=val;}pub......
  • 2008秋-计算机软件基础-单链表练习(1)
    /*--------------------------------------------------------设有一个单链表,头结点为head,为递增有序,写一个完整程序,将其改为递减有序。----------------------------------------------------------*/#include<stdio.h>#include<stdlib.h>//定义结点structnodetype......
  • 2008秋-计算机软件基础-单链表完整示例
    /*---------------------------------------------------------Title:CompletedSimpleLinkedListAuthor:EmanLeeDate:Oct22,2008Fuction:OperationonLinkedStoredLinearList.Thisisacompletedsimplesample.Itisrelatedto......
  • 2008秋季-线性表的链式存储(仅单链表)
    /*---------------------------------------------------------Title:单链表Date:September1,2008Fuction:单链表的初始化,创建,插入,删除,查找结点。参考PPT讲稿或者教材2.2.4节.(p56-63)----------------------------------------------------------*/#inclu......