
数据结构
niceYF
这个作者很懒,什么都没留下…
展开
-
二叉树求宽度以及宽度优先遍历
宽度优先遍历就是从上到下,从左到右依次遍历就行。可以使用队列来做。先将头结点放入队列,重复下面的行为。{从队列中弹出一个节点,并打印。如果弹出的节点有左节点,就将左节点放入队列中,如果弹出的节点有右节点,就将右节点放入队列中。先左后右。} public static void widthPrioritySearch(NodeTwo node) { if(node==null) { return ; } Queue<NodeTwo> queue原创 2022-03-12 22:55:53 · 1353 阅读 · 0 评论 -
数据结构--二叉树
什么是二叉树?二叉树就是每个节点最多只有两个节点的树就叫二叉树。就像这样1.递归过程:递归序:从上往下,从左往右进行遍历的方式,所经过的节点的顺序。例如上图中。先经过1,再经过2,到达4,4到左孩子发现没有了,回到4,然后去右孩子,发现也没有再回到4按照这种方式依次经过的顺序为 1 2 4 4 4 2 5 5 5 2 1 3 666 3 777 3 1.每一个节点都要经过三次。如果在第一次经过的时候就输出节点,那就是先序遍历。也就是根左右如果在第二次经过的时候输出原创 2022-03-12 20:56:19 · 867 阅读 · 0 评论 -
打印链表中相同的节点
思路就是两个指针,分别指向两个链表的head.next谁小谁往后移动,两个相等就打印输出,然后同时向后移动即可。在加入节点的时候要做到链表有序,才可以进行比较。 public void addByOrder(Node node) {//按照顺序插入一个节点 Node temp = head; while(temp.next!=null && temp.next.no<node.no) { temp = temp.next; } if(temp.n原创 2022-03-09 21:44:19 · 252 阅读 · 0 评论 -
双向链表的使用
双向链表中有一个头指针(head),然后每个节点有两个指针分别指向前面一个节点和后面一个节点。package com.yf;public class Day11 { public static void main(String[] args) { Node A = new Node(1,"yf1");// System.out.println(); Node B = new Node(2,"yf2"); Node C = new Node(3,"yf3"); Doub原创 2022-03-09 20:58:49 · 472 阅读 · 0 评论 -
单链表的增删改查操作
先定义节点类class Node{ public Integer no; public String name; public Node next;//表示接下来的那个节点 public Node(int no,String name) { this.no = no; this.name = name; } @Override public String toString() { return "no:"+this.no+" name:"+this.name;原创 2022-03-08 14:41:58 · 284 阅读 · 0 评论