输入三个数:1、2、3,然后把2删除了并且输出删除后的链表,然后添加一个数10,并且输出添加后的链表

其中需要注意!!!

刚刚发现的,head=new node;这样的话不能把head->next为NULL,而当head=new node();时,head->next就为NULL了

程序代码:

#include<stdio.h>
struct data{int note;data *next;
};int main()
{int i;data *p,*head,*q,*r;p=new data;//申请一个空间q=new data;head=new data;head->next=NULL;p=head;for(i=0;i<3;i++){r=new data;//每用一次都要申请一次空间scanf("%d",&r->note);p->next=r;p=p->next;}p->next=NULL;p=head;while(p!=NULL)//删除操作{if(p->next->note==2){q=p;q->next=q->next->next;break;}p=p->next;}p=head->next;while(p!=NULL){printf("%d\n",p->note);p=p->next;}printf("\n");r=new data;r->note=10;r->next=NULL;p=head;while(p!=NULL)//添加操作{if(p->note==1){r->next=p->next;p->next=r;break;}p=p->next;}p=head->next;while(p!=NULL){printf("%d\n",p->note);p=p->next;}return 0;
}

单链表的删除:

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;struct node{int data;struct node *next;
};int main()
{node *q,*p,*head;int n,i;head=new node;//也可以head=(node*)malloc(sizeof(node));head->next=NULL;//建立有头单链表scanf("%d",&n);q=new node;q=head;for(i=0;i<n;i++){p=new node;scanf("%d",&p->data);p->next=NULL;q->next=p;q=p;}p=new node;scanf("%d",&p->data);p->next=NULL;q=head;while(q!=NULL){if(q->next==NULL||q->next->data>p->data){p->next=q->next;q->next=p;break;}q=q->next;}q=head->next;while(q!=NULL){printf("%d ",q->data);q=q->next;}printf("\n");return 0;
}

数据结构-链表的删除和添加相关推荐

  1. java增加 删除 修改表格_Java实现单链表的创建、添加、修改、删除

    packagelinkedlist;//单链表的创建.添加插入.修改.删除 public classSingleLinkedListDemo {public static voidmain(Strin ...

  2. 《大话数据结构》第3章 线性表 3.8.2 单链表的删除

    3.8.2 单链表的删除         现在我们再来看单链表的删除.设存储元素ai的结点为q,要实现将结点q删除单链表的操作,其实就是将它的前继结点的指针绕过,指向它的后继结点即可(如图3-8-5所 ...

  3. 剑指offer(C++)-JZ18:删除链表的节点(数据结构-链表)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点.返回删除后的链表 ...

  4. 剑指offer(C++)-JZ76:删除链表中重复的结点(数据结构-链表)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回 ...

  5. 常考数据结构与算法:删除链表的倒数第n个节点

    题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...

  6. C语言数据结构-数组广义表-十字链表-实现十字链表的初始化操作-实现十字链表的删除操作

    十字链表 十字链表相关定义如下: typedef int ElemType;// 非零元素结点结构 typedef struct OLNode {int row,col;ElemType value; ...

  7. 初学数据结构--链表

    2019独角兽企业重金招聘Python工程师标准>>> 前言 在这一章,我将介绍另外一种非常重要的线性数据结构--链表.在之前介绍的动态数组,栈和队列这三种数据结构,底层其实依托于静 ...

  8. 4-玩转数据结构-链表

    本章我们介绍链表 前面我们已经介绍了动态数组,栈和队列. 它们的底层依托静态数组;靠resize解决固定容量问题 链表是我们接触的第一个真正的动态数组. 为什么链表很重要 链表是重点,也是难点.它是最 ...

  9. python数据结构-链表

    线性表 元素间具有线性关系的一种线性结构 由n个具有相同数据类型的数据元素构成的有限序列 python中的内置类型list和tuple可以看作线性表的实现 线性表的存储和实现 基于顺序存储 把线性表的 ...

最新文章

  1. windows计算器
  2. Spring和CXF整合发布WebService(服务端、客户端)
  3. java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
  4. 《Python编程快速上手——让繁琐工作自动化》——第一部分 Python编程基础 第1章 Python基础 1.1 在交互式环境中输入表达式...
  5. QT的QReadWriteLock类的使用
  6. gba徽章机器人_徽章战士GBA攻略
  7. [Java基础]Stream流综合练习
  8. 函数返回指针类型(strchr函数)
  9. c post请求网页_Python使用urllib2抓取网页
  10. at for lte
  11. 开发技术理论学习与实践的关系
  12. 详解LVDS通信协议
  13. 麻将判断胡牌 java_麻将基本胡的算法——Java
  14. 好强的谷歌插件,不用写代码就能爬虫!
  15. Grafana 任意文件读取漏洞复现
  16. Zuul动态路由及动态Filter实现
  17. 百钱百鸡问题(C++)
  18. 人活着最重要的是什么
  19. 2020美赛E题解题思路方法:淹溺在塑料中
  20. AlphaFold/run_alphafold.py代码阅读理解

热门文章

  1. IT行业为什么需要更多的女性?
  2. rename批量修改文件名
  3. TensorFlow之多核GPU的并行运算
  4. xadmin与admin设置
  5. JavaScript(一)js简单介绍
  6. HDU-1520 Anniversary party(树形DP)
  7. 【转】wireshark过滤规则
  8. C++实践笔记(四)----AVL树的简单实现
  9. spgwr | R语言与地理加权回归(Ⅰ-1):线性地理加权回归
  10. raster | R语言中的空间栅格对象及其基本处理方法(Ⅰ)