| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 链表结构描述哈希 -> 正文阅读 |
|
[数据结构与算法]链表结构描述哈希 |
我们要实现这样一个效果: ? 纵向排列的数据的个位数按顺序依次递增,每一个纵向节点都有一条分支,而且各自横向排列的分支的个位数都相同,并且横向分支排列按顺序从左往右依次递增。 所以需要创建下面这样的哈希链式结构 ?它们由两部分不同类型的节点组成,一种是有两个指针指向的节点 ?另一种是普通的节点,由数据域和指针域组成 接下来代码部分就是封装节点的过程 首先定义普通类型的结构体,包括数据域和指向下一个节点的指针
?然后封装它们的创建对象以及初始化过程,方便后续创建新节点
?然后就是两个指针的纵向结构体 包括结构体的数据域,指向Node类型的指针firstNode和指向下一个节点的指针
?同样的封装创建新节点和头节点的创建以及的初始化过程,这里采用头节点的方式排序,所以需要另外封装一个头节点的创建过程
?接下来就是创建链表的过程,同样用一个结构体封装一个链表结构 因为要求要对个位数进行排序。比如数字23,当divisor等于10的时候我们采用取余运算23%divisor 就能够获取个位数的数值了
接下来就同样的封装创建过程
然后就是哈希表的插入 通过头节点一个个地纵向查找 先获取到传进来的dataNum值的个位数 然后定义两个指针一个指向头节点,另一个指向头节点的下一个,两个指针循环移动,直到找到余数比自己大的值,然后把值在两个指针指向的位置中间插入 如果是找到了余数相等的位置,就把数据插入到分支后面 然后就是完成各个分支类的排序 如果纵向没有找到比它大的余数,就直接把数值插入到最后面
最后就是链表的打印部分 定义两个移动的指针每次纵向指针移动到横向的头节点处,就循环打印横向的链表,循环往复,直到纵向链表的数据全部打印完毕
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:37:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |