注:這是乙個新的系列,主要是由於資料結構與演算法是程式設計師以後立身的根本,我以前在大學也學過,但是很快就忘記了,現在想把它撿起來,通過寫乙個系列文章,加深自己的理解,其實我寫這個系列主要是想先通過預熱,然後去刷leetcode。刷演算法本身是想鍛鍊自己寫程式的思維,不想因為每天寫業務**,導致自己思維僵化,此系列會與springboot系列同時更新,立個falg。
說明:陣列有兩個基本變數:
// 陣列申請空間的長度
private int size = 0;
// 陣列實際長度
private int count;
// 陣列實際儲存
private int array;
構造方法/**
* 構造方法-初始化
* @param capacity 陣列初始化長度
*/public myarray(int capacity)
// 使用構造方法,初始化空間大小
myarray myarray = new myarray(6);
新增
注:新增本質上就是在連續的空間插入新的資料,我目前已知兩種
/**
* 根據索引在指定位置插入資料
* @param index 索引
* @param value 帶插入的值
*/protected boolean myarrayinsert(int index,int value)
// 判斷是否越界
if (index < 0 || index >= size)
// 迴圈,從插入的位置開始依次將資料向後移動,將index所指向的位置騰出來,方便插入新的資料
for (int i = count; i > index; i--)
array[index] = value;
count ++ ;
system.out.println("插入成功");
return true;
}
刪除:同新增,依然有兩種方法/**
* 刪除指定位置的數
* @param index 索引
*/protected boolean myarraydel(int index)
for (int i = index; i < count - 1; i++)
count --;
system.out.println("刪除成功");
return true;
}
查詢:返回查詢成功之後資料的索引值/**
* 陣列查詢
* @param value 待查詢的值
* @return 返回該值對應的索引
*/protected int myarrayfind(int value)
}system.out.println("查詢不成功,該數不存在");
return -1;
}
修改/**
* 修改替換指定位置的資料
* @param index 指定位置索引
* @param value 值
* @return 是否修改成功
*/protected boolean myarraymodify(int index,int value)
array[index] = value;
return true;
}
列印輸出:為了方便查詢效果,提供列印方法/**
* 陣列列印**/
protected void printall()
}
測試public static void main(string args)
Java資料結構與演算法 一 陣列
1.無序陣列 package com.fantj.datastruct.array created by fant.j.2017 12 20 18 16 public class myarray public myarray int maxsize 新增資料 public void insert l...
資料結構與演算法系列 字典樹
一 背景 什麼是字典樹?trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的...
資料結構與演算法系列19 堆
堆其實就是一種特殊的樹,那它特殊在 呢?只要滿足了以下兩點的,我們就可以稱之為堆。1.堆是乙個完全二叉樹 2.堆中每乙個節點的值都必須大於等於 或者小於等於 其子樹中每個節點的值。這裡稍作解釋,對於第一點,我們前面講過,完全二叉樹就是除了最後一層,其他層的節點個數都是滿的,最後一層的節點都靠左排列。...