数据结构——单链表的C++实现

\qquad单链表的创建、求长度、查找、插入和删除的C++实现。

#include<iostream>
using namespace std;//1.定义
typedef struct Node* List;
struct Node {int num;Node* next;
};
void input(int* a)
{cin >> *a;
}//2.创建链表
void CreateList(List* L, int n, void (*input)(int* a))
{List s;*L = new Node;(*L)->next = NULL;List LL = *L;LL->num = 1000;for (; n > 0; n--) {s = new Node;input(&s->num);s->next = (*L)->next;(*L)->next = s;}
}//3.链表长度
int Length(List L)
{List p = L;int j = 0;while (p){p = p->next;  j++;}return j;
}//4.按序号查找
List FindKth(int k, List Ptrl)
{List p = Ptrl;int i = 1;while (p != NULL && i < k) {p = p->next;i++;}if (i == k)return p;else return NULL;}//5.按值查找
List Find(int x, List Ptrl)
{List p = Ptrl;while (p != NULL && p->num != x) {p = p->next;}return p;
}//6.插入
List Insert(int x, int i, List Ptrl)
{List p, s;if (i == 1) {s = new Node;s->num = x;s->next = Ptrl;return s;}p = FindKth(i - 1, Ptrl);if (p == NULL) {cout << "参数i错" << endl;return NULL;}else {s = new Node;s->num = x;s->next = p->next;p->next = s;return Ptrl;}
}//7.删除
List Delete(int i, List Ptrl)
{List p, s;if (i == 1) {s = Ptrl;Ptrl = Ptrl->next;delete s;return Ptrl;}p = FindKth(i - 1, Ptrl);if (p == NULL) {cout << "第" << i - 1 << "个结点不存在" << endl;return NULL;}else if (p->next == NULL) {cout << "第" << i << "个结点不存在" << endl;return NULL;}else {s = p->next;p->next = s->next;delete s;return Ptrl;}
}int main()
{List L;int n;int len;cin >> n;CreateList(&L, n, input);cout << "--------------------------" << endl;int i;List L1 = L;for (i = 0; i < n; i++) {L1 = L1->next;cout << L1->num << endl;}cout << "--------------------------" << endl;List L2 = L;L2 = Delete(2, L2);for (i = 0; i < n-1; i++) {L2 = L2->next;cout << L2->num << endl;}return 0;
}

数据结构——单链表的C++实现相关推荐

  1. 20175330 数据结构-单链表(选做)

    要求 参见附件,补充MyList.java的内容,提交运行结果截图(全屏) 课下推送代码到码云 ``` public class MyList {     public static void mai ...

  2. php链表和联表的区别,PHP_浅谈PHP链表数据结构(单链表),链表:是一个有序的列表,但 - phpStudy...

    浅谈PHP链表数据结构(单链表) 链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个 ...

  3. php mysql 链表_浅谈PHP链表数据结构(单链表)

    链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个程序运行时,内存分成五个区(堆区, ...

  4. python 单链表是否有回路_(Python3)数据结构--单链表之判断链表是否有环

    前言 有Python基础 有数据结构单链表基础,没接触过的可以看下面链接 https://blog.csdn.net/sf9898/article/details/104946291 原理和实现 有一 ...

  5. 数据结构 —— 单链表(超详细图解 接口函数实现)

    系列文章目录 数据结构 -- 顺序表 数据结构 -- 单链表 数据结构 -- 双向链表 数据结构 -- 队列 数据结构 -- 栈 数据结构 -- 堆 数据结构 -- 二叉树 数据结构 -- 八大排序 ...

  6. C语言数据结构单链表链表

    数据结构–单链表 学习了顺序表,我们发现顺序表在向里面存放数据的时候很麻烦,比如我们要使用头插法存放一个数据到顺序表的时候,我们要将整个表都向后挪一位,这个操作就让人很难受.那么有没有一种结构可以让我 ...

  7. 数据结构——单链表(小白入门第二天)

    一.什么是单链表? 定义:每个结点 除了存放数据元素外,还要存储指向下一个节点的指针: 优点:不要求大片连续空间,改变容量方便: 缺点:不可随机存取,要耗费一定空间存放指针 局限性:无法逆向检索 二. ...

  8. 数据结构-单链表基本操作(C语言实现)

    参考书:王道考研数据结构 (此贴为博主学习408的笔记,因博主也是学习者,个人总结如有错误欢迎指正.如有侵权请告知,马上删除致歉)​​ 单链表定义 单链表是线性表的链式存储,通过一组任意的存储单元来存 ...

  9. 数据结构 -- 单链表

          快要放假了,实在是待不住了,论文也看不下去,也没啥其他的事做,就写写常用的数据结构吧,正好下个学期就要找工作了,也是方便以后自己使用这些数据结构,好吧,这里实现的数据结构没有太多的错误控制 ...

最新文章

  1. rapter求n的阶乘流程图_RAPTOR程序设计例题参考答案
  2. android 前摄屏幕补光,异形显示屏及其前置摄像头的拍照补光方法与流程
  3. 通过Web Services上传和下载图片文件
  4. 13c语言中的文件是一种流式文件,读写时均以字符为单位.,C语言判断题部分.doc...
  5. 我要自学网java jsp_学javaweb需要什么基础?零基础如何学习javaweb?
  6. STM32F103单片机PWM单脉冲输出模式
  7. 简单又帅气的折纸机器人教程_几张纸做出帅气纸飞机,做法简单飞行速度超快,手工折纸飞机...
  8. linux中断--进程上下文和中断上下文
  9. Spring如何配置bean属性
  10. 【计算机网络笔记】数据链路层:点对点协议PPP
  11. python代码模拟 手写字体
  12. STM32 直流电机 转速比
  13. 市场细分与目标群体定位
  14. Convert Binary Search Tree to Sorted Doubly Linked List
  15. IT安全面试问题汇总
  16. ant.vue富文本编辑器_基于Vue.js 2.0和shimo Docs样式的富文本编辑器
  17. 程序员的那些搞笑牛逼注释
  18. 远程桌面客户端 RDP
  19. 基于微信小程序的机房设备故障报修平台
  20. latex论文排版初级应用

热门文章

  1. LeetCode MySQL 1149. 文章浏览 II
  2. LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
  3. LeetCode 1025. 除数博弈(动态规划)
  4. 剑指Offer - 面试题58 - II. 左旋转字符串
  5. txt文件可存储最大值_Verilog边码边学:十六进制文件读取$readmemh
  6. c语言 spawn函数,我在electron程序中spawn了一个C语言程序作为子进程,我该如何与这个子进程通信?...
  7. word 插入代码_突破Word页码困境,这招简单又实用的自动更新法,90%的人还不会!...
  8. 报名通道开启 | 顶会 ICLR 2021:医疗对话生成与自动诊断国际竞赛,邀你来战!...
  9. 秋招视频攻略!13个offer,8家SSP的Q神谈算法岗秋招技巧
  10. 史上最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等