单链表创建-遍历-排序-插入-删除-逆序操作

2024-09-02 12:48

本文主要是介绍单链表创建-遍历-排序-插入-删除-逆序操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <iostream>
using namespace std;typedef struct NodeType
{int data;NodeType* pNext;
}NodeType;
//链表的1创建 2 遍历 3排序 4 插入 5 删除
NodeType* create_list();
void traverse_list(NodeType* pHead);
void sort_list(NodeType* pHead);
void insert_list(NodeType*,int pos,int val);
void delete_list(NodeType*,int pos);NodeType* reverse_list(NodeType* pHead);int main()
{NodeType* pHead=create_list();//insert_list(pHead,1,33);//traverse_list(pHead);//delete_list(pHead,1);pHead=reverse_list(pHead);traverse_list(pHead);return 0;
}
//*****************创建链表*************************************************/
NodeType* create_list()
{cout <<" 输入创建节点个数" <<endl;int len;int val;cin >> len;if (len<=0){exit(-1);}NodeType* pHead=new NodeType;NodeType* p=pHead;for (int i=0;i<len;i++){cin >>val;NodeType* pNew=new NodeType;pNew->data=val;pNew->pNext=NULL;p->pNext=pNew;p=pNew;}return pHead;
}
//*****************遍历链表*************************************************/
void traverse_list(NodeType* pHead)
{for (NodeType*p=pHead->pNext;p!=NULL;p=p->pNext){cout << p->data << " ";}cout << endl;
}
/*****************排序链表*************************************************/
void sort_list(NodeType* pHead)
{NodeType* p=pHead->pNext;NodeType* pTail;for (;p->pNext!=NULL;p=p->pNext){for (pTail=p->pNext;pTail!=NULL;pTail=pTail->pNext){if((p->data)>(pTail->data)){swap(p->data,pTail->data);}}}
}
/*****************插入链表*************************************************/
void insert_list(NodeType* pHead,int pos,int val)
{//不仅仅是判断条件,而且还有定位p(插入点位置前一个位置)NodeType* p=pHead;for (int i=0;p!=NULL&&i<pos-1;p=p->pNext){++i;}//插入 就插入一个节点NodeType* pNew=new NodeType;pNew->data=val;pNew->pNext=p->pNext;p->pNext=pNew;
}/*****************插入链表*************************************************/
void delete_list(NodeType* pHead,int pos)
{NodeType* p=pHead;for ( int i=0;i<pos-1&&p!=NULL;p=p->pNext,i++){}NodeType* q=p->pNext;p->pNext=p->pNext->pNext;delete q;}
/*****************逆序链表*************************************************/
NodeType* reverse_list(NodeType* pHead)
{NodeType* p1,*p2,*p3;if (pHead==NULL||pHead->pNext==NULL){return pHead;}p1=pHead->pNext;p2=p1->pNext;p1->pNext=NULL;while (p2){p3=p2->pNext;p2->pNext=p1;p1=p2;p2=p3;}pHead->pNext=p1;return pHead;
}

逆序链表笔记图:


这篇关于单链表创建-遍历-排序-插入-删除-逆序操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1129997

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt