IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 暑期的数据结构学习(Java) -> 正文阅读

[数据结构与算法]暑期的数据结构学习(Java)

个人比较菜,只会瞎写一写bug,莫怪莫怪。

1.1数据结构杂论

数据结构是计算机必学课程,其可以提高效率

目前有三类:线性结构(数组,栈,链表),树结构(二叉树,AVL,线段树,哈夫曼树),图结构(邻接表,邻接矩阵)

数据库一般分装好直接使用SQL语言使用,哈希表,等完成数据库

哈夫曼树,.rar,.png,MP3,MP4,均使用到数据结构,tried的工作原理

图论算法DFS深度算法使用栈;BFS广度算法,使用队列

数据结构+算法=程序

使用Java语言(完全面向对象)

?

2.1数组

概念:把数据码排成一排进行存放

public class Main{
 ? ?public static void main(String[] args)
 ?  {int[] arr=new int[10]
 ?  }
}

2.1.1二次封装,数组类

public class Array
{
    private int[] data;
    private int size;
 ? ?//构造函数,传入数组的容量capacity构造Array
    public Array(int capacity)
    {
    data = new int [capacity];
    size = 0;
    }
/*
无参数的构造函数,默认容量capacity为10
*/
public Array()
    {
 ? ?this(capacity:10)}
    }
//获取数组中的元素个数
public int getsize()
    {return size;}
//获取数组容量
public int getCapacity()
    {
 ? ?return data.length;
    }
//返回数组是否为空
public boollean isempty()
    {return ziae = 0;}
}

2.1.2数组的元素添加

1、数组末尾添加元素

//前方与上文相同
//在最后添加元素
public void addLast(int e)
    {
    if ( size == data.length)
 ? ? ? ?throw new illegalArgumentException("AddLast filed.Array is full")
 ? ?data[size] = e;
 ? ?size++;
 ? ?//data[size++]=e;
    } ? ?
}

2、向指定位置添加

从后往前挪,防止前方覆盖后方,直到要添加位置

//在最前添加元素
public void addFirst(int e){
 ? ?add(index:0,e);
}
?
//在最后添加元素
public void addLast(int e)
    {
 ?/*    if ( size == data.length)
 ? ? ? ?throw new illegalArgumentException("AddLast filed.Array is full.");
 ? ?data[size] = e;
 ? ?size++;
 ? ?//data[size++]=e;
    */
add(size,e);
} ? ?
?
 //在指定为index位置添加元素e
public void add(int index,int e)
{if (size == data.length)
    throw new illegalArgumentException("AddLast filed.Array is full.");
if (index<0||index >size)
 ? ?throw new illegalArgumentException("Add faild.");
 for (int i=size-1;i >= index ;i--)
 {data[i+1]=data[i];
 size++;
 }
}
}

2.2查询,修改,搜索和删除元素

public static void main(String[] args)
{
 ? ?Array arr=new Array(capacity:20);
 ? ?for (int i=0;i<10;i++)
 ? ? ? ?arr.addLast(i);
 ? ? System.out.println(arr);
 ? ?arr.addFirst(e:-1);
 ? ?System.out.println(arr);
}
//获取索引位置元素
public int get(int index)
{
return data[index]
if (index<0||index>=size)
throw new illegalArgumentException("Add faild.");
}
 //修改index索引位置的元素为e
public void set (int index,int e)
{
 if (index<0||index>=size)
 throw new illegalArgumentException("Add    faild.");} 
 //对应索引,若不存在为-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
 public boolean contains(int e){
 ? ? ?for (int i=0;i<size;i++)
 ? ? ? ? ?if (data[i]==e)
 ? ? ? ?  { ? ?return i;}
 ? ? ? ? return -1; 
  } ? ?
//删除指定位置
public int remove(int index){
 if (index<0||index>=size)
 throw new illegalArgumentException("Add    faild.";)
 int ret =data[index];
 ?for (int i=0;i<size;i++)
data[i-1]=data[i];
size--;
return ret;
}
public int removefirst(){return remove(0);}
public int removelast(){return remove(size-1);}
public void removeElement(int e){
 ? ?int index=find(e);
 ? ?if (index!=-1)
 ? ? ? ?remove(index);//只删除一个
}

?

?

?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:28:07  更:2021-07-15 16:30:43 
 
开发: 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年5日历 -2024/5/4 9:55:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码