单链表的各种操作

#include<iostream>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
typedef int DATA;struct SNode            //定义节点
{DATA data;SNode* pNext;
};
class CList             //创建一个链表类
{SNode* m_hHead;    //链表初始化char m_name[20];public:CList()            //构造函数初始化链表{m_hHead = NULL;}void Setname(const char* p){strcpy(m_name, p);}void AddHead(DATA data) //头部插入{SNode* p = new SNode;    //创建新的节点p->data = data;          //数据域p->pNext = m_hHead;      //指针域m_hHead = p;             //链表初始头}void AddTail(DATA data)   //尾插入{SNode* pNew = new SNode;     //创建新的节点pNew->data = data;           //数据域pNew->pNext = NULL;          //指针域if (!m_hHead)                //没有头节点情况下{m_hHead = pNew;          //将新创建节点设置为头节点return;}SNode* p = m_hHead;          //防止异常while (p->pNext != NULL)     //遍历到最后一个节点p = p->pNext;            p->pNext = pNew;             }int Delete(DATA data)     //删除节点{SNode* p = m_hHead, *p1 = NULL;//*p1用来记录前一个节点地址if (!p)return 0;if (p->data == data)  //当要删除节点为头节点的情况{m_hHead = p->pNext;free(p);return 1;}while (p){if (p->data == data){p1->pNext = p->pNext;free(p);return 1;}p1 = p;p = p->pNext;}}void Print()            //打印节点{cout << m_name << endl;SNode* p = m_hHead;while (p){cout << p->data << endl;p = p->pNext;}}void Modify(DATA data, DATA newData)//修改某处节点{SNode* p = m_hHead;while (p){if (p->data == data)p->data = newData;p = p->pNext;}}int Find(DATA data)      //查找节点{SNode*p = m_hHead;int i = 0;           //用于返回当前节点查找到的位置while (p){if (p->data == data)return i + 1;//代表成功,返回的位置p = p->pNext;++i;}return -1;//代表失败}int GETLIST()            //返回节点总数量{SNode* p = m_hHead;int i = 0;while (p){i++;}return i;}
};int main()
{CList A,B;A.Setname("LIST1: ");A.AddHead(10);A.AddHead(9);A.AddHead(8);A.AddHead(7);A.AddHead(6);A.AddHead(5);B.Setname("LIST2: ");B.AddHead(4);B.AddHead(3);B.AddHead(2);B.AddHead(1);B.AddHead(0);A.Print();B.Print();system("pause");return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux双显卡配置_Linux系统怎么配置双显卡?

感谢脚本之家网友鸢一雨音 的投稿众所周知&#xff0c;自从高性能独立图形处理器出现之后&#xff0c;很多便携式计算机就会采取一种双显卡的设计&#xff1a;节能的核心图形处理器用于渲染常规的桌面环境&#xff0c;而高性能的独立图形处理器则负责渲染高需求的应用程序。这种…

同时防服务器维修,加强服务器日常运维,避免宕机灾难发生

原标题&#xff1a;加强服务器日常运维&#xff0c;避免宕机灾难发生服务器作为我们日常网络的支撑&#xff0c;可以说是24小时的全天候运转。在这种无休止的“加班”的状态下&#xff0c;服务器必然容易出问题&#xff0c;一旦发生服务器宕机就会造成整个网络的瘫痪&#xff0…

java动态代理_Java动态代理

java动态代理代理是一种设计模式。 当我们想添加或修改现有类的某些功能时&#xff0c;我们创建并使用代理对象。 使用代理对象而不是原始对象。 通常&#xff0c;代理对象具有与原始对象相同的方法&#xff0c;并且在Java代理类中&#xff0c;通常会extend原始类。 代理具有原…

建立能持续处理请求的Server端改造

#include<iostream> #include<Windows.h> using namespace std;int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOCKET _sock ::socket(AF_INET, SOCK_STREAM,…

basemap安装_【我是解决安装问题系列_1】Mac python basemap安装

「2020/3/21更新」 附basemap网盘下载地址⏬Python需要跳过的安装的坑太太太太多了!!!!!最近看《利用python进行数据分析》这本书&#xff0c;到可视化的部分&#xff0c;看着最后的例子地图挺酷炫的&#xff0c;跟着敲代码的过程中&#xff0c;发现有时候不是你不会写&#xf…

nfs服务器远程访问,NFS远程共享存储

原标题&#xff1a;NFS远程共享存储构建储NFS远程共享存因为NFS有很多功能&#xff0c;不同的功能需要使用不同的端口。因此NFS无法固定端口。而RPC会记录NFS端口的信息&#xff0c;这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息。那RPC和NFS之间又是如何之间相互通…

chameleon 算法_使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试...

chameleon 算法从我以前的帖子继续在这里 &#xff0c;我想我已经了解了Java EE和也的Arquillian&#xff0c;并测试了一些新的&#xff08;和令人兴奋的&#xff09;事&#xff0c;我想与大家分享。 但是&#xff0c;在开始之前&#xff0c;我想首先请您注意以下几点&#xf…

建立能持续处理请求的Client端改造

#include<iostream> #include<Windows.h> using namespace std;int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOCKET _sock ::socket(AF_INET, SOCK_STREAM,…

comparator 字符串比较大小_Java8 - 使用 Comparator.comparing 进行比较排序

使用外部比较器Comparator进行排序 当我们需要对集合的元素进行排序的时候,可以使用java.util.Comparator 创建一个比较器来进行排序。Comparator接口同样也是一个函数式接口,我们可以把使用lambda表达式。如下示例, package com.common; import java.util.*; import java.u…

ntp服务器查看终端,使用命令行界面使用NTP服务器在Windows中同步时间 | MOS86

即使使用简单的3V锂电池(CR2032)关闭电脑&#xff0c;每台台式电脑也能保持正确的时间。但这不是一个可充电电池&#xff0c;所以一年左右就停止工作了。您可以轻松地替换此单元格&#xff0c;但更换单元后&#xff0c;必须使用NTP服务器更新时间&#xff0c;以便Windows PC保持…

java 中的指针_Java中的指针

java 中的指针Java中有指针吗&#xff1f; 简短的答案是“不&#xff0c;没有”&#xff0c;这对于许多开发人员来说似乎是显而易见的。 但是&#xff0c;为什么对其他人却不那么明显呢&#xff1f; http://stackoverflow.com/questions/1750106/how-can-i-use-pointers-in-ja…

发送结构化网络数据Server端

#include<iostream> #include<Windows.h> using namespace std;struct DataPack {int age;char name[32];};int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOC…

concat合并的数组会有顺序么_JS 数组操作 记录 笔记

Array数组的方法Mutator方法————"突变方法"会改变数组自身的值&#xff1b;Accessor方法————"访问方法"不会改变数组自身的值&#xff1b;Iteration方法————"遍历的方法" Establish方法————"创建新方法"Mutator方法(会…

工厂模式理解_工厂模式

工厂模式理解工厂模式是一种创新的设计模式&#xff0c;其目的是提供一个接口&#xff0c;用于创建相关或相关对象的族&#xff0c;而无需指定其具体类。 创建逻辑封装在工厂中&#xff0c;该工厂提供创建逻辑的方法或将对象的创建委托给子类。 客户端不知道接口或类的不同实现…

服务器双向认证 原理,什么叫SSL双向认证 SSL双向认证过程是怎样的

我们都知道SSL认证能够分成SSL双向认证和SSL单向认证。那么&#xff0c;什么是SSL双向认证&#xff1f;SSL双向认证过程又是怎样的&#xff1f;小编就在接下来的内容为各位详细讲述。什么叫SSL双向认证SSL双向认证则是需要是服务端需要客户端提供身份认证&#xff0c;只能是服务…

发送结构化数据Client端

#include<iostream> #include<Windows.h> using namespace std;struct DataPack {int age;char name[32];};int main() {//初始化ws2_32.dllWORD ver MAKEWORD(2, 2);WSADATA wsaData;WSAStartup(ver, &wsaData);//对应WSACleanup的调用//1.建立一个socketSOC…

依赖: ros-melodic-desktop 但是它将不会被安装_npm系列之依赖管理

1. 版本控制npm依赖包使用语义化的版本号&#xff0c;让开发者可以从版本号中推测修改。版本号格式为&#xff1a;X.Y.ZX&#xff1a;代表主版本号&#xff0c;只有更新了不向下兼容的API时才需要修改Y&#xff1a;次版本号&#xff0c;当模块增加了向下兼容的功能时需要修改Z&…

java编写代理服务器_如何编写Java代理

java编写代理服务器对于vmlens &#xff08;轻量级Java竞争条件捕获器&#xff09;&#xff0c;我们使用Java代理来跟踪字段访问。 这是我们学习的实现此类代理的经验教训。 开始 使用“静态公共静态无效值premain&#xff08;String args&#xff0c;Instrumentation inst&am…

怎么修改ipv4服务器,如何修改ipv4 wins 服务器地址

如何修改ipv4 wins 服务器地址 内容精选换一换IPv6的使用&#xff0c;可以有效弥补IPv4网络地址资源有限的问题。如果当前云服务器使用IPv4&#xff0c;那么启用IPv6后&#xff0c;云服务器可在双栈模式下运行&#xff0c;即云服务器可以拥有两个不同版本的IP地址&#xff1a;I…

C++ 【随想录】(二)指针常量与常量指针精解【一次掌握】

关于指针常量和常量指针 const int *x int *const y 在前先读&#xff0c;在前不变 *&#xff08;指针&#xff09;和const(常量&#xff09;谁在前先读谁&#xff1b; *代表被指的数据&#xff0c;名字代表指针地址 const在谁前谁不变