数据结构
慢熱乖友
这个作者很懒,什么都没留下…
展开
-
单链表面试题:获取倒数第K个结点,反转以及逆序打印
文章目录一、获取倒数第K个结点二、单链表的反转三、单链表的逆序打印总结 一、获取倒数第K个结点 思路: 先遍历出单链表个数的总数 然后从头开始遍历到第 count - index 个就是倒数第K个结点 /** * @Author: yzh * @Description: 获得倒数第k个结点 * @Param: [head, index] * @return: com.hao.demo.Node * @Date: 2021/7/30 */原创 2021-07-30 10:53:27 · 124 阅读 · 0 评论 -
模拟单链表的增删改查代码实现
文章目录一、单链表的增删改查实现二、代码实现总结 一、单链表的增删改查实现 增加功能 1、普通插入 思路:遍历到最后一个元素,将最后一个元素的next指向新增加的结点即可 temp.next = 新结点 2、按照No顺序插入 思路:遍历找到大于新结点No的前一个结点,注意是前一个结点,然后进行插入 因为如果是找到大于新结点的当前节点的话,无法在其前面进行插入操作 temp.next.no > node.no node.next = .原创 2021-07-28 21:36:08 · 123 阅读 · 0 评论 -
数组模拟环形队列实现
文章目录一、环形队列实现思路二、代码实现总结 一、环形队列实现思路 与数组实现的普通队列有所不同: 最重要的一点是取模进行循环。 1、front直接指向第一个有效元素,初始值为0 2、rear指向最后一个有效元素的后一个位置,初始值为0 3、队列为空:rear==fromt 4、队列为满:(rear+1)%maxSize ==front 5、有效元素的个数:(rear-front+maxSize)%maxSize 二、代码实现 package com.hao.demo; import ja原创 2021-07-28 15:49:43 · 97 阅读 · 0 评论 -
数据结构:使用数组实现队列
文章目录一、使用数组实现队列的思路二、代码实现总结 一、使用数组实现队列的思路 maxSize :队列的最大容量,初始值由程序员输入 front :随着数据输出(出队)而改变,初始值-1 rear :是随着数据输入(入队)而改变,初始值-1 队列为空:front == rear 队列为满:rear == maxSize-1 二、代码实现 import java.util.Scanner; /** * Created with IntelliJ IDEA. * * @Author.原创 2021-07-28 10:21:46 · 181 阅读 · 0 评论 -
原数组与稀疏数组转换
原数组与稀疏数组转换 思路 数组转稀疏数组 1、遍历 原始的二维数组,得到非0数据的个数sum 2、根据sum创建稀疏数组 sparseArray[sum+1][3] 3、将二维数组的邮箱数据保存到稀疏数组中 数组转稀疏数组 1、读取稀疏数组的第一行,得到行和列,创建原始的二维数组 2、在读取细数数组后几行的数组,并且赋值给二维数组即可 *i从1开始,不是0开始* public class Demo { public static void main(String[] arg原创 2021-07-26 21:42:43 · 86 阅读 · 0 评论 -
数据结构题目--判断回文
判断回文–栈实现 题目:设计一个算法,识别依次读入的以“#”为结束符的字符序列。例如“序列1”@“序列2”#模式的字符序列。其中序列1和2都不包含“@”,且序列1是序列2的逆序列,如abc@cba是,abc@cab不是。 个人理解:就是先将序列1存入栈,利用栈先进后出的特征进行回文判断。 void Palindrome(char[] expr ,int n ) { int i ,j ; //初始化一个栈 Stack s = StackInit(); //将字符序列1入栈 for(i = 0;i &原创 2020-08-10 16:44:53 · 1840 阅读 · 0 评论 -
数据结构题目--括号是否匹配
括号是否匹配–栈实现 题目:对于给定的简单算术表达式(只包含“+” “-“ ”*” “/“ “(” “)”),存放在字符数组expr[]中,长度为n。从左到右逐个字符扫描,利用栈(已提供的栈和基本操作,而且不会出现栈满的情况)设计一个括号是否匹配的算法。 个人理解:当扫描到“(”的时候将其入栈,扫描到“)”的时候就将栈中的“(”弹出,若是栈中还能弹出“(”,则与当前的“)”匹配。当扫描到“)”,但是栈已经为空时,则“)”多。若扫描完“)”,而栈中还存留“(”时,则“(”多。 void parenthsi原创 2020-08-10 16:13:57 · 202 阅读 · 0 评论 -
数据结构题目--奇数偶数两边站
## 数据结构题目–奇数偶数两边站 题目:一个顺序表,存放在数组a[]中,元素的类型为int型,顺序表的长度为n。设计算法调整a,使得左边的所有元素为奇数,右边的所有元素为非奇数。要求时间复杂度为O(n),空间复杂度为O(1)。 个人理解:利用双指针遍历把不符合条件的元素找出,然后进行交换。 在这里插入代码片 void quickSwapList(int a[],int n) { int i = 0,j = n-1; //n为顺序表的长度 while(i < j) { while(a[i]原创 2020-08-10 15:46:55 · 434 阅读 · 0 评论