王道书P41 T24(单链表实现)
/*** 用链表实现 王道P41 T24** ①算法思想:* 首先创建一个(n+1)大小的数组,数组下标用来保存0到n大小的data,数组存储的元素用来标记此元素的abs是否出现过,刚开始初始化为 0;* 然后断链,从头开始遍历,如果是第一次出现则插入,并将对应下标数组的元素设置为 1,如果不是第一次出现,则判断下一个,直到为空。* * ②数据结构:* typedef struct LNode{int data;struct LNode *next;}LNode,*LinkList;** ③算法设计*/#include <stdio.h>
#include <iostream>typedef struct LNode{int data;struct LNode* next;
}LNode,*LinkList;void DeleteReAbs(LinkList &L,int n){//创建n + 1 大小的数组//这个数组下标可以保存 0 到 n 大小的数,和题目中说的data的绝对值小于 n 正好对应int *flag = (int*)malloc(sizeof(int) * (n + 1));//初始化数组for(int i = 0; i < n + 1; i++){flag[i] = 0;}//断链,如果符合条件再重新插入LLinkList p = L -> next,q,r = L;L -> next = NULL;while(p){q = p -> next;if(flag[abs(p -> data)] == 0){//abs是取绝对值r -> next = p;r = p;p = q;flag[abs(p -> data)] = 1;}else{free(p);p = q;}}free(flag);r -> next = NULL;
}
王道书P41 T24(单链表实现)相关推荐
- 王道书 P41 T19(循环单链表实现)
/*** 用链表实现 王道P41 T19** ①算法思想:* 不断地从 L 中找到最小值输出并删除,* 直到 L -> NEXT = L 结束.** ②数据结构:* typedef struct ...
- 王道书P41 T22(单链表实现)
/*** 用链表实现 王道P41 T22** ①算法思想:* 首先让第一个指针到达正数第 k 个位置,然后再另第二个指针从头开始和第一个指针一起跑,* 当第一个指针空时,第二个指针就到达了倒数第 k ...
- 王道书P41 T21(单链表实现)
/*** 用顺序表实现 王道P41 T21** point:* 快慢指针的思想** ①算法思想:* 设置一个快指针,一个慢指针,* 如果没有环,那么快指针一定会先走到 NULL(没必要判断慢指针了), ...
- C语言实现单链表(有源代码哦)专为小白!!!
首先,第一次在学校里学习数据结构与算法的时候,大家可能会发现抄书上的代码建议无法实现相应的功能(至少小编是这样的,直到放寒假的时候才实现第一个算法).今天教大家手把手实现书上的单链表,希望能对大家数据 ...
- 2023王道考研数据结构第二章---单链表
2.3 单链表 2.3.1 单链表的定义 什么是单链表? typedef关键字:数据类型重命名 typedef <数据类型> <别名> 如: typedef int zheng ...
- 线性表之链表复习(仅王道单链表题目)
考研408复习,如发现任何错误,请私聊,不胜感谢 单链表代码已更新完毕. 如下: #include <iostream> #include <algorithm> #inclu ...
- 王道代码版单链表头插法,不带头的头插法,尾插法,不带头的尾插法的总结
在编译器上面编译发现很容易控制台打印不出来,这可能就是细节所在,但是网上也没有很全的全代码输出的案例.我做题的感觉写的是对的其实并不对,你只是第六感感觉是对的仅此而已!!!要注意引以为戒,下面总结一下 ...
- (王道408考研数据结构)第二章线性表-第三节3:循环单链表和循环双链表
文章目录 一:循环链表定义 二:循环单链表 三:循环双链表 一:循环链表定义 循环链表:规定好头尾结点的指向形成成环状 循环单链表:其尾节点的next指针由原本的空改为指向头结点 循环双链表:其尾节点 ...
- (王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)
文章目录 一:单链表相关 (1)单链表的定义 (2)头指针与头结点 二:单链表代码描述 三:单链表的初始化 四:单链表的插入 五:单链表的删除 六:单链表查找 (1)按位查找 (2)按值查找 七:单链 ...
最新文章
- react 组件样式_如何使用样式化组件为React组件创建视觉变体
- Keras【Deep Learning With Python】手写数字识别
- win10停止更新_新电脑到手第一件事,win10系统刷成win7,为何不直接预装win7?
- 一些恶意软件的分析收集整理
- lucene的丰富的各种查询
- Python Django 模型类字段常用属性
- 微信无法连接服务器1-502,只有一部iphone x手机,在微信公众号中选择菜单,出现bad gateway 502错误,原因?...
- 采用分治法求一个整数序列中的最大值和最小值
- Oracle数据库备份和恢复配置详解
- 38..Node.js工具模块---底层的网络通信--Net模块
- EXCHANGE 2003 恢复存储组的使用
- android获取用户点击的坐标
- tagwriter汉化版_【NFC TagWriter by NXP电脑版下载2020】NFC TagWriter by NXP PC端最新版「含模拟器」...
- 美团王兴怒卸百度 App
- 链接装载与库:第十一章——运行库
- 使用LibreOffice实现word转pdf(python代码)
- 如何获取Level2行情接口连接?
- Unity的AB包系统使用概论
- 技巧:Vimdiff 使用
- 浮动(Floats)原理与清除浮动