单链表删除 清空链表过程注释

void List::ClearList(){//清空链表
Node *currentNode=m_pList->next;
while(currentNode!=NULL)/
{
Node *temp=currentNode->next;
delete currentNode;
currentNode=temp;
}
m_pList->next=NULL;

        m_pList->data=0;//这个的含义是表头数据为0吗
0
扫码支付0.1元 ×
其他相关推荐
C语言实现链表的创建、增加、删除、查询、逆序、清空等基本操作
//linklist.h #ifndef LINKLIST_H_ #define LINKLIST_H_ typedef int datatype; typedef struct node { datatype data; struct node *next; }listnode, *linklist; linklist linklist_create(); int link
单链表的清空
转自:https://blog.csdn.net/dan15188387481/article/details/49721749 C语言实现链表之单向链表(四)清空链表     上一篇文章给出了创建链表的函数,本篇文章将给出清空链表的函数,程序如下。 [cpp] view plain copy ...
单链表删除 清空链表过程注释
void List::ClearList()//清空链表n Node *currentNode=m_pList->next;n while(currentNode!=NULL)/n n Node *temp=currentNode->next;n delete currentNode;n currentNode=temp;n n m_pList->next=NULL;n n n m_pList->data=0;//这个的含义是表头数据为0吗
数据结构-单链表的读取,插入与删除
链表定义:struct ListNode { int value; ListNode *next; };单链表读取在顺序存储结构中,比如数组中,想要获取某一个位置的数据是非常容易的一件事,但是在链表中却要麻烦一些,因为链表的存储单元并不是连续的,而且我们只知道链表的头结点,也就是想知道第i个位置的数据,只能从头找下去,并没有什么其他的好方法。 需要注意的是,如果i大于链表的长度的话程序会异
链表的销毁和清空c++程序
*******************************************//链表的销毁void ClearLinkList(LinkNode **pHead) //传入为二级指针,否则不能将其他节点置为nullptr{ if(*pHead == nullptr) //判断是否为空链表 { cout<<"This is an empty LinkList"&...
链表的创建,插入,删除,查询,合并,清空,销毁(带头结点)
带头结点链表的创建,插入,删除,查询(头部插入)#include<iostream> #include<cstdio> #include<malloc.h> #define OVERFLOW -2 #define ERROR -1 typedef struct LNode{ int data; LNode *next; }LNode,*Link...
C语言实现链表之单向链表(四)清空链表
C语言实现链表之单向链表(四)清空链表     上一篇文章给出了创建链表的函数,本篇文章将给出清空链表的函数,程序如下。 /*============================================================================== * 操作 :清空链表,释放结点内存,将链表重置为空表 * 操作前:ppHeadNod
c++之链表篇1:单向链表的创建,打印,删除,插入,销毁等基本操作
在牛客网上刷题的过程遇到很多链表的问题,所以自己又结合着传智播客上的视频把链表整理了一下。 #include using namespace std; //链表的的结点 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; //创建一个单向链表 L
单链表常见操作图文详解
     单链表的最大特点是可以将物理地址上不连续的数据连接起来,通过指针来对物理地址进行操作,实现增删改查等功能。     单链表分为两种:有头链表和无头链表。     无头单链表,也就是phead一只是一个指针,指向链表的第一个节点。     带头节点的单链表:只不过头结点的data不保存信息。//构建一个节点typedef struct Node { DataType data; ...
清空链表跟销毁链表的区别
链表本身是一个数据结构。 销毁:是先销毁了链表的头,然后接着一个一个的把后面的销毁了,这样这个链表就不能再使用了,即把包括头的所有节点全部释放。 清空:是先保留了链表的头,然后把头后面的所有的都销毁,最后把头里指向下一个的指针设为空,这样就相当与清空了,但这个链表还在,还可以继续使用;即保留了头,后面的全部释放。 清空是链表的头还在,可以继续插入节点;销毁就是链表没了,整个链表(包括头)的空
数据结构学习二 数据结构之链表图解版【创建,遍历,删除,插入】
图解链表:● 建立动态链表 待插入的结点p1数据部分初始化,该结点被头结点head、尾结点p2同时指向 1.任务是开辟结点和输入数据 2.并建立前后相链的关系p1重复申请待插入结点空间,对该结点的数据部分赋值(或输入值) P2->next 指向p1新开辟的结点。P2指向新结点p2=p1 ● 遍历链表1.单向链表总是从头结点开始的; 2.每访问一个结点,就将当前指针向该结点的下一个
单链表的读取,插入与删除
一:单链表的读取    获得链表第i个数据,算法思路:    1.声明一个指针p指向链表的第一个结点,初始化j从1开始;    2.j<i时,遍历链表,p指针后移,j+1;    3.到链表尾部p为空或者j>i时,说明第i个节点不存在;    4.若查找成功,返回结点p的数据。二:单链表的插入  单链表第i 个数据插入结点的算法思路:  1.声明一指针p 指向链表头结点,初始化从1开始...
单链表的讲解:单链表的原理,添加、删除元素
单链表及其节点 链表是一系列的存储数据元素的单元通过指针串接起来形成的,因此每个单元至少有两个域, 一个域用于数据元素的存储,另一个域是指向其他单元的指针。 这里具有一个数据域和多个指针域的存储单元通常称为 结点(node) 一种最简单的结点结构如图所示,它是构成单链表的基本结点结构。在结点中数据域用来存储数据元素, 指针域用于指向下一个具有相同结构的结点。 因为只有一个指针结点,称为单链表 ...
链表删除.c
#include<stdio.h>#include<stdlib.h>#define LEN sizeof(node)typedef struct student{ char id[20]; char name[10]; char x[10]; int year; struct student *next;}*List, node;List phead;List creat...
C++类的思想实现单链表的插入、删除操作
//定义两个类:一个类用来保存节点信息 数据、下一个节点的地址 // 一个类用来保存头节点,以及链表操作函数:插入,打印,删除等 class node { public: string m_data; node *m_next; }; class MyList { public: MyList(); MyList(stri...
C++实现链表的创建、插入、删除
#include using namespace std; struct node {         int data;         node *next; }; class linklist  { private:         node *head; public:         linklist();         void creat
数据结构:程序加图示分析单链表的插入和删除操作
下图展示了单链表的基本结构: head指针是链表的头指针,指向第一个节点,每个节点的next指针域指向下一个节点,最后一个节点的next指针域为NULL,在图中用0表示。 下面先来看程序(栈的链式存储实现,另外一个实现点这里)和对应的输出(注意输出前进行了链表反转(见《单链表反转》,否则程序后面的while循环输出的顺序是250,200,100),接着来分析程序:  C+
单链表-创建、插入、删除、查找、反转等操作
//list.h #ifndef _List_H #define _List_H #include #include #define NotFound NULL; typedef struct List { int value; struct Node * next; }Node; typedef struct List *pNode; typedef pNode pList
c++链表的创建,插入和删除
c++链表的创建,插入和删除简单的综合,适合初学者
链表的清空操作
typedef struct _NodeList { void *nodeItem; struct _NodeList *next; }NodeList; void Node_free( NodeList *nList ) { Nodelist *next; while( nList != NULL ){ next = nList->ne...
单链表的删除算法Delete
1.删除操作 删除操作是将单链表的第i个结点删除。因为在单链表中结点ai的存储地址在其前驱结点ai-1的指针域中,所以必须首先找到ai-1的存储地址p,然后令p的next的域指向ai的后继结点,即把结点ai从链上摘下,最后释放结点ai的存储空间。 算法用伪代码描述如下: 2.删除算法的时间主要消耗在查找正确的删除位置上,故时间复杂度亦为O(n)。单链表删除算法的C++描述如下: ...
链表栈的基本操作的实现---入栈、出栈、清空
利用链表的结构实现栈的功能---入栈、出栈、清空 代码如下: linkstack.h  链表栈的头文件 #include class Node { public: int data; Node * next; }; class stack { private: Node *head; Node *pcurr; int length; public: stack()
链表的一系列操作(创建,插入,删除,从前到后,从后到前遍历整个链表)
众所周知,链表是被面试提及最频繁的数据结构,链表的结构简单,它由指针把若干个结点链接成链状结构: 1.链表的创建,插入和删除操作 (1)定义头文件List.h struct ListNode {     int       m_nValue;     ListNode* m_pNext; }; __declspec( dllexport ) ListNode* Create
数据结构-单链表按序号删除
#include #include #define OK 1 #define ERROR 0 using namespace std; typedef struct LNODE { int data; struct LNODE *next; }Lnode; Lnode* Input(int n) { Lnode *head,*p,*q; head=p=(Lnode*)malloc(si
链表(C语言)删除、插入(头插法)、清空等操作
几个重要知识点: 一: L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; 在给节点分配内存后,一定要将next指针赋值为null。 二: Status ListInsert(LinkList &L, int i, ElemType e) 为什么有些函数参数前带&号? 答:&是取地址的意思,传递变量的指针
C++ 单链表创建、插入和删除
#include #include #include #include /** * cstdio是将stdio.h的内容用C++头文件的形式表示出来。 *stdio.h是C标准函数库中的头文件,即:standard buffered input&output。 *提供基本的文字的输入输出流操作(包括屏幕和文件等)。
java遍历单链表(删除尾结点、添加)
package 每日算法题; import java.awt.*; import java.util.Collection; public class 链表 <T>{ public Node head;//头结点 public Integer N=0;//结点个数 class Node{ public int date; p...
单链表的创建、初始化、插入、删除 、输出、求表长、清空、查找操作
//单链表的创建、初始化、插入、删除 、输出、求表长、清空、查找操作 #include #include #include #define N 5 #define ERROR 0 #define OK 1 typedef struct node{ //定义节点 int data; struct node *next; }linklist; linklist *Initlist()
链表的删除操作
趁着今天还有点时间,再分享一题,这里有两个题目,题目一:给定单项链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。思路:把非头节点和尾节点的后一位节点的值覆盖到要删除的节点,然后把删除的节点的next指向它下一个节点的下一个节点就OJBK了如:1->2->3->4    需要删除3,那么把3覆盖到2那里得到    1->3->3->4    然...
单链表的删除与插入(C++)
简单单链表的删除与插入 问题1:删除值为x的节点的后继结点 问题2:删除值为x的节点的前继结点 问题3:在值为x的节点后添加一个值为y的节点 #include using namespace std; //Node struct Node{ int data;//数据域 Node* next;//指针域 Node();//构造 Node(int elem, Node* lin
删除单链表中的指定节点
题目1: 编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值结点是唯一的)。时间复杂度为O(n),空间复杂度为O(1)。 问题解答: 算法思想:用p从头至尾扫描单链表,pre指向*p结点的前驱,用minp保存值最小的结点指针(初值为p),minpre指向*minp结点的前驱(初值为pre)。一边扫描,一边比较,若p->dafa小于minp->dara,则将p、pr...
C语言实现单链表删除
C语言实现单链表删除所有与条件相符的结点 删除链表的结点指若某结点数据域的值满足给定的条件,则将该节点删除。 删除链表结点有两个原则: (1)删除操作不应该破坏原链接关系。 (2)删除结点前,应该有一个删除位置的查找子过程。 在删除一个结点时可能遇到以下三种情况: (1)链表为空。此时不用做任何操作,直接返回。 (2)链表头就是要删除的结点。这时先用一个指针q暂存此结点,再将链表头指向下一结点,最...
单向循环链表创建、遍历、插入、删除、查找(按位置,按元素值)、清空、销毁
SinglyLinkedCirculayList.h #include "stdafx.h" #include "iostream" using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode, *LinkedList; //创建链表 bool createLinkedList(Linked
C++实现单向链表的增加、删除、读取功能
链表相比于数组的优势有: 1. 增加和删除元素效率非常高; 2. 可以不需要预先知道存储元素的数量。 相比于数组的劣势有: 1. 查找元素的效率低; 2. 由于存储额外节点指针,带来的空间消耗。 采用C语言形式实现插入和删除两个函数 //插入元素 bool InsertNode(Node* p, int index, int data) { Node* pCur = p; ...
java实现单链表的增加,删除,查找,打印
原文地址:http://liuyanzhao.com/2230.html 刚才传了一个java实现顺序表的基本功能的代码,下面是单链表的。同为笔记,以为回顾 文件名App.java /*编写类,实现如下功能: *1、创建有序单链表 *2、包含如下基本操作:初始化、增加、删除、查找、打印元素 * 注意:初始化不同于用new 创建元素。 * *目的: * 1、理解成员变量、成员方法的
单链表的创建、删除、插入、查询代码
LinkedList.h//单链表是用一组任意的存储单元存放线性表的元素,这组单元可以是连续的也可以是不连续的,甚至可以是零散分布在内存中的任意位置。 //单链表头文件 #include<iostream> using namespace std; //定义单链表结点-结构体类型 template<class DataType> struct Node { //数据域,存...
数据结构(C++)----单链表模板类
所有的文件都在List.h文件下#ifndef LIST_H #define LIST_H #include<iostream> #include<stdlib.h>using namespace std;template<class Type> class List;template<class Type> class ListNode { public: friend class Lis
没有头结点的单链表如何删除结点
题目:假设有一个没有头结点的单链表。一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点)。请将该节点从单链表中删除。 典型的“狸猫换太子”, 若要删除该节点,正常情况下,应该要知道该节点的前面节点的指针,但是由于单链表中没有头结点,所以无法追溯到该节点前面的那个节点,因此,这里采用了“移花接木”的方法。设该节点为B,下一个节点为C。那么,首先将B节点的内容替换为C节点的内容,然
如何使用C++递归来删除单链表中某一个由用户输入特定的值
之前小编写了一些关于用C++递归来实现某种功能在不同的数据结构中,现在,小编还继续用递归来实现在单链表(LLL)中删除某一个特定的值,说明,因为小编所学的都是英文教材,所以在写的时候会夹杂着英文来进行表达,多学点英语还是好处的,再说了代码就是字母。回归正题,为了解决这道题,就需要要特别考虑到尾指针(tail pointer),因为在.h 文件里有用head pointer 和 tail pointe
c语言:单链表的实现(一) 创建,插入,删除,查找
#include #include #include #define NULL 0 #define LEN sizeof(struct Student) using namespace std; typedef struct Student { int length; int num; struct Student *next; }Student; typedef Student *Lin
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java中的单链表学习 java 链表学习