数据结构-链表的删除和添加
输入三个数: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;
}
数据结构-链表的删除和添加相关推荐
- java增加 删除 修改表格_Java实现单链表的创建、添加、修改、删除
packagelinkedlist;//单链表的创建.添加插入.修改.删除 public classSingleLinkedListDemo {public static voidmain(Strin ...
- 《大话数据结构》第3章 线性表 3.8.2 单链表的删除
3.8.2 单链表的删除 现在我们再来看单链表的删除.设存储元素ai的结点为q,要实现将结点q删除单链表的操作,其实就是将它的前继结点的指针绕过,指向它的后继结点即可(如图3-8-5所 ...
- 剑指offer(C++)-JZ18:删除链表的节点(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点.返回删除后的链表 ...
- 剑指offer(C++)-JZ76:删除链表中重复的结点(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回 ...
- 常考数据结构与算法:删除链表的倒数第n个节点
题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...
- C语言数据结构-数组广义表-十字链表-实现十字链表的初始化操作-实现十字链表的删除操作
十字链表 十字链表相关定义如下: typedef int ElemType;// 非零元素结点结构 typedef struct OLNode {int row,col;ElemType value; ...
- 初学数据结构--链表
2019独角兽企业重金招聘Python工程师标准>>> 前言 在这一章,我将介绍另外一种非常重要的线性数据结构--链表.在之前介绍的动态数组,栈和队列这三种数据结构,底层其实依托于静 ...
- 4-玩转数据结构-链表
本章我们介绍链表 前面我们已经介绍了动态数组,栈和队列. 它们的底层依托静态数组;靠resize解决固定容量问题 链表是我们接触的第一个真正的动态数组. 为什么链表很重要 链表是重点,也是难点.它是最 ...
- python数据结构-链表
线性表 元素间具有线性关系的一种线性结构 由n个具有相同数据类型的数据元素构成的有限序列 python中的内置类型list和tuple可以看作线性表的实现 线性表的存储和实现 基于顺序存储 把线性表的 ...
最新文章
- windows计算器
- Spring和CXF整合发布WebService(服务端、客户端)
- java xml文件内容替换_java读取xml文件并转换成对象,并进行修改
- 《Python编程快速上手——让繁琐工作自动化》——第一部分 Python编程基础 第1章 Python基础 1.1 在交互式环境中输入表达式...
- QT的QReadWriteLock类的使用
- gba徽章机器人_徽章战士GBA攻略
- [Java基础]Stream流综合练习
- 函数返回指针类型(strchr函数)
- c post请求网页_Python使用urllib2抓取网页
- at for lte
- 开发技术理论学习与实践的关系
- 详解LVDS通信协议
- 麻将判断胡牌 java_麻将基本胡的算法——Java
- 好强的谷歌插件,不用写代码就能爬虫!
- Grafana 任意文件读取漏洞复现
- Zuul动态路由及动态Filter实现
- 百钱百鸡问题(C++)
- 人活着最重要的是什么
- 2020美赛E题解题思路方法:淹溺在塑料中
- AlphaFold/run_alphafold.py代码阅读理解