当前位置: 首页> 房产> 建筑 > 网站怎么优化关键词排名_运营推广网站建设_seo含义_策划推广方案

网站怎么优化关键词排名_运营推广网站建设_seo含义_策划推广方案

时间:2025/7/18 19:32:53来源:https://blog.csdn.net/2201_75345199/article/details/143832859 浏览次数:0次
网站怎么优化关键词排名_运营推广网站建设_seo含义_策划推广方案

一、常见的数据结构

 数组、链表、栈、队列、哈希表、树、图和堆

二、常见数据结构各自的优缺点

数组
优点:访问元素速度快,支持随机访问。
缺点:插入、删除操作效率低,大小固定。

链表
优点:插入、删除操作效率高,动态大小。
缺点:访问速度慢,无法随机访问。


优点:操作简单,先进后出(LIFO)结构,适用于递归问题。
缺点:只能访问栈顶元素,无法遍历。

队列
优点:先进先出(FIFO)结构,适用于任务调度等场景。
缺点:只能访问队头、队尾,无法随机访问。


优点:层次结构清晰,快速查找、插入和删除(例如二叉搜索树)。
缺点:可能退化为链表(不平衡时),需要额外的平衡维护。

三、数据结构在Java代码中的书写方式

1.链表类

//链表类
public class Linked {private Node head;private Node tail;private int size;public  int size(){return size;}public void add(int a){Node n=new Node(a);if (head==null){//头节点为null,说明整个链表是空的head=n;tail=n;}else {//如果链表不为空,则把新节点添加到尾结点的后面tail.next=n;tail=n;}size++;}public int get (int index){if (index>size-1){throw new RuntimeException("链表长度越界");}if (index<0){throw new RuntimeException("链表长度小于0");}Node n=head;for (int i=0;i<index;i++){n=n.next;}return n.data;}public void delete(int index){Node n=head;if (index==0){head=head.next;n.next=null;size--;return;}for (int i = 0; i < index-1; i++) {n=n.next;}//n2是被删除节点,n是被删除节点的前驱结点Node n2=n.next;//让被删除节点的前驱节点指向被删除节点的后继节点n.next=n2.next;n2.next=null;size--;}public String toString(){StringBuilder str=new StringBuilder();Node n=head;while (n!=null){str.append(n.data);n=n.next;if (n!=null){str.append(" -> ");}}return str.toString();}public static void main(String[] args) {Linked l=new Linked();l.add(1);l.add(2);l.add(3);l.add(4);l.add(5);System.out.println(l);System.out.println(l.get(1));l.delete(3);System.out.println(l);}
}

根据以上代码以及原理自行写出链表节点类的代码?

//链表结点类
public class Node {int data;Node next;public Node(int data){this.data=data;}}

2.自定义队列类

//自定义队列类
public class MyQueue {private int[] data=new int[10];int  index;public void add(int i){data[index]=i;index++;}public int pop(){int v=data[0];for (int i=0;i<index;i++){data[i]=data[i+1];}index--;return v;}public int size(){return index;}
}
public class MyStack {private Linked linked=new Linked();public void add(int i){linked.add(i);}public int pop(){int v = linked.get(linked.size() - 1);linked.delete(linked.size()-1);return v;}public int size(){return linked.size();}
}

3.二叉树类

public class Tree {private TreeNode root;public void add(int v){TreeNode node=new TreeNode(v);if (root==null){root=node;}else {//如果要添加的数据小于根节点,则添加到左边add(root,node);
//            if(v < root.data){
//                TreeNode n = root.left;
//                TreeNode parent = root;
//                while (n != null){
//                    if(n.data > v){
//                        n = n.left;
//                        parent = parent.left;
//                    }else {
//                        n = n.right;
//                        parent = parent.right;
//                    }
//                }
//                if(v < parent.data){
//                    parent.left = node;
//                }else{
//                    parent.right = node;
//                }
//            }}}private void add(TreeNode p,TreeNode v){if (v.data<p.data){if (p.left==null){p.left=v;}else {add(p.left,v);}}else {if (p.right==null){p.right=v;}else {add(p.right,v);}}}public void preOrder(){preOrder(root);}private void preOrder(TreeNode n){if (n==null){return;}System.out.print(n.data +"->");preOrder(n.left);preOrder(n.right);}public void midOrder(){midOrder(root);}private void midOrder(TreeNode n){if (n==null){return;}midOrder(n.left);System.out.print(n.data+"->");midOrder(n.right);}public static void main(String[] args) {Tree t=new Tree();t.add(10);t.add(5);t.add(3);t.add(2);t.add(4);t.add(7);t.add(6);t.add(8);t.add(15);t.add(13);t.add(12);t.add(14);t.add(17);t.add(16);t.add(18);t.preOrder();System.out.println();t.midOrder();}
}

根据以上代码以及原理自行写出二叉树节点类的代码?

//二叉树结点类
public class TreeNode {int data;TreeNode left;TreeNode right;public TreeNode(int data){this.data=data;}}

关键字:网站怎么优化关键词排名_运营推广网站建设_seo含义_策划推广方案

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: