#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct Student_data
{
int data;
struct Student_data *next;
}*PSD,SD; PSD creat_list();
int length_list(PSD );
bool sort_list(PSD );
bool insert_list(PSD );
bool traverse_list(PSD );
bool delete_list(PSD ); int main()
{
PSD pHead = NULL;
pHead = creat_list();
int len = length_list(pHead);
cout<<"链表长度为:\t"<<length_list(pHead)<<endl;
traverse_list(pHead);
insert_list(pHead);
sort_list(pHead);
traverse_list(pHead);
delete_list(pHead);
traverse_list(pHead);
return 0;
} PSD creat_list()
{
int len;
cout<<"请输入需要输入数据的个数:\t";
cin>>len;
PSD pHead = (PSD)malloc(sizeof(SD));
PSD pTail = pHead;
pTail->next = NULL;
if(pHead == NULL)
{
cout<<"错误 !";
exit(-1);
}
for(int i=0;i<len;i++)
{
PSD pNew = (PSD)malloc(sizeof(SD));
if(pNew == NULL)
{
cout<<"错误 !";
exit(-1);
}
cout<<"请输入第 "<<i+1<<"个数据:\t";
cin>>pNew->data;
pTail->next = pNew;
pNew->next = NULL;
pTail = pNew;
}
return pHead;
} int length_list(PSD pHead)
{
int i = 0;
PSD p=pHead;
while(p->next!=NULL)
{
i++;
p=p->next;
}
return i;
} bool sort_list(PSD pHead)
{
cout<<"由小到大排序..."<<endl;
PSD p=pHead->next,q;
int t;
for(p;p!=NULL;p=p->next)
for(q=p->next;q!=NULL;q=q->next)
if(p->data>q->data)
{
t = p->data;
p->data = q->data;
q->data = t;
}
traverse_list(pHead);
return true;
} bool insert_list(PSD pHead)
{
int n,x;
cout<<"请输入在第几个前插入:";
cin>>n;
cout<<"插入数据为:";
cin>>x;
int i=0;
PSD p=pHead;
while(i<n-1)
{
p=p->next;
i++;
}
if(p == NULL)
{
cout<<"插入失败!"<<endl;
exit(-1);
}
PSD pNew = (PSD)malloc(sizeof(SD));
if(pNew == NULL)
{
cout<<"创建失败!"<<endl;
exit(-1);
}
pNew->data = x;
PSD t=p->next;
p->next = pNew;
pNew->next = t;
return true;
} bool traverse_list(PSD pHead)
{
cout<<"输出:"<<endl;
PSD p=pHead->next;
while(p!=NULL)
{
cout<<p->data<<endl;
p=p->next;
}
return true;
} bool delete_list(PSD pHead)
{
cout<<"删除第几个节点:\t";
int i=0,n;
cin>>n;
if(n>length_list(pHead))
{
cout<<"删除失败!"<<endl;
return false;
}
PSD p = pHead;
while(i<n-1)
{
p = p->next;
i++;
}
PSD j = p->next;
if(n==length_list(pHead))
p->next= NULL;
else
p->next = p->next->next;
delete(j);
j=NULL;
return true;
}

CPP链表示例的更多相关文章

  1. 二次战CPP链表

    Felling By Ruiy: Pre-learnning link list knowloages 熟悉 指针相关操作应用+结构体数据类型应用,且能简单融合使用,堆内存(内存泄露)->类似于 ...

  2. CPP 栈 示例

    #include<iostream> #include<stdlib.h> using namespace std; typedef struct node { int dat ...

  3. C# 将链表存入二进制文件及读取二进制文件得到链表示例

    // 将tasks保存到二进制文件中 public Boolean saveToFile(String file) { try { ) { // 没任务就不存 return false; } if ( ...

  4. [数据结构]链表相关的实现LinkList.cpp

    目录 LinkList.cpp //链表相关操作的实现 LinkList.h LinkListManager.cpp //链表相关实现函数的调用 LinkListManager.h LinkList. ...

  5. JAVA 链表操作:单链表和双链表

    主要讲述几点: 一.链表的简介 二.链表实现原理和必要性 三.单链表示例 四.双链表示例 一.链表的简介 链表是一种比较常用的数据结构,链表虽然保存比较复杂,但是在查询时候比较便捷,在多种计算机语言都 ...

  6. h2engine游戏服务器设计之聊天室示例

    游戏服务器设计之聊天室示例 简介 h2engine引擎建群以后,有热心网友向我反馈,想尝试h2engine但是没有服务器开发经验觉得无从入手,希望我能提供一个简单明了的示例.由于前一段时间工作实在忙碌 ...

  7. Java链表讲解

    主要讲述几点: 一.链表的简介 二.链表实现原理和必要性 三.单链表示例 四.双链表示例 一.链表的简介 链表是一种比较常用的数据结构,链表虽然保存比较复杂,但是在查询时候比较便捷,在多种计算机语言都 ...

  8. LeetCode 链表题 ( Java )

    leetcode 237. 删除链表中的节点 链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/ 示例 : 输入: he ...

  9. C++工厂方法模式讲解和代码示例

    在C++中使用模式 使用示例: 工厂方法模式在 C++ 代码中得到了广泛使用. 当你需要在代码中提供高层次的灵活性时, 该模式会非常实用. 识别方法: 工厂方法可通过构建方法来识别, 它会创建具体类的 ...

随机推荐

  1. 几款实力很强的小工具,提高Windows使用效率

    如果你说我会用Windows,许多人会说,切,谁不会用Windows啊? 接下来说说我在Windows环境下,如何使用一些工具,提高效率.这些工具是我过去这些年雪藏的,今天放出来晒一晒. 当我要搜索文 ...

  2. SpringMVC 框架系列之组件概述与配置详解

    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...

  3. 一道java基础面试题

    package test; class A {    public A(){        System.out.println("A3");    }    {        S ...

  4. .net remoting在wpf中的应用

    我做一个remotting的通讯测试,让控制台程序和wpf窗体通讯.具体实现的功能如下: 1.wpf获取信息在控制台上显示 2.控制台启动wpf,以及在屏幕前端显示 首先,我们来看项目结构: 共三个项 ...

  5. 基于 HTML5 WebGL 的 3D 机房

    前言 用 WebGL 渲染的 3D 机房现在也不是什么新鲜事儿了,这篇文章的主要目的是说明一下,3D 机房中的 eye 和 center 的问题,刚好在项目中用上了,好生思考了一番,最终觉得这个例子最 ...

  6. Notepad++ JSON关键字自动提示

    Notepad++关键字自动提示 2017-08-31 目录 1 插件安装2 往JSON中加关键字3 智能提示 最近接口测试自动化框架的的case是json格式,用例的json的格式是固定的,定义专门 ...

  7. SDN资料

    深入浅出SDN 华为SDN PPT 基于分类的软件定义网络流表更新一致性方案 SDN-网络变革的探讨 Openflow交换机初步安装测试 floodlight源码解读. Floodlight核心包源码 ...

  8. 仿QQ发语音、图片选择、表情选择demo

    一款仿QQ发语音.图片选择.调用拍照.表情选择的demo git地址:https://github.com/PureLovePeter/pic.git.  喜欢的请 star  star star,共 ...

  9. Genymotion模拟器的安装及常见问题解决方法

    Genymotion是很好用很快的一款Android模拟器. 我们使用的时候下载一个免费版的就足够用了. 官网下载地址:http://www.genymotion.net/ 不过这个软件下载之前必须注 ...

  10. 小程序首页onLoad为异步,调用app.js中的全局参数的解决方案。

    一,先说一下遇到的问题: 在首页,为了携带app.js中一些参数去做请求动作,但是由于异步原因,发现请求时候,参数信息还未获取到但请求已经发出去. 若等app.js的全局参数返回来,再携带着它去做请求 ...