알고리즘 시작 1 - 데이터 구조 (배열 과 링크)
장점.
결점.
배열
색인 을 통 해 임의의 요소 에 직접 접근 할 수 있 습 니 다.
초기 화 하려 면 원소 의 수 를 알 아야 합 니 다.
체인 테이블
사용 한 공간 크기 와 원소 수량 은 정비례 한다
인용 을 통 해 임의의 요소 에 접근 해 야 합 니 다.
추상 데이터 형식
데이터 표시
부모 링크 트 리
UnionFind
정형 배열
이분 탐색 트 리
BST
두 개의 링크 를 포함 하 는 결점
문자열
String
배열, 오프셋, 길이
산 목록 (지퍼 법)
SeparateChainingHashST
링크 배열
산 목록 (선형 탐지 법)
LinearProbingHashST
두 개체 배열
그림 의 인접 링크
Graph
Bag 개체 의 배열
단어 찾기 트 리
TrieST
링크 배열 의 결점 포함
단어 찾기 트 리
TST
세 개의 링크 를 포함 하 는 결점
1. 더 자주 사용 하 는 데이터 구조
, ,
1. 창고
package com.basic.example;
import javax.xml.soap.Node;
/**
* Created by IntelliJ IDEA.
*
* @version : 1.0
* @auther : Firewine
* @mail : [email protected]
* @Program Name: StackExam .java
* @Create : 2019-02-23-15:22
* @Description :
*/
public class StackExam<Item> {
//
private Node first;
//
private int N;
private class Node{
//
Item item;
Node next;
}
public boolean isEmpty(){return first == null;}
public int size(){return N;}
public void push(Item item){
//
Node oldfirst = first;
first = new Node();
first.item = item;
first.next = oldfirst;
N++;
}
public Item pop(){
//
Item item = first.item;
first = first.next;
N--;
return item;
}
}
2. 대열
package com.basic.example;
import javax.xml.soap.Node;
/**
* Created by IntelliJ IDEA.
*
* @version : 1.0
* @auther : Firewine
* @mail : [email protected]
* @Program Name: QueueExam .java
* @Create : 2019-02-23-15:29
* @Description :
*/
public class QueueExam <Item>{
//
private Node first ;
//
private Node last;
//
private int N;
private class Node{
//
Item item;
Node next;
}
public boolean isEmpty(){return first == null;}
public int size(){
return N;
}
public void enqueue(Item item){
Node oldlast = last;
last.item = item;
last.next = null;
if (isEmpty()){
first = last;
}else {
oldlast.next = last;
}
}
public Item dequeue(){
Item item = first.item;
first = first.next;
if (isEmpty()){
last =null;
}
N--;
return item;
}
}
3. 가방
package com.basic.example;
import java.util.Iterator;
/**
* Created by IntelliJ IDEA.
*
* @version : 1.0
* @auther : Firewine
* @mail : [email protected]
* @Program Name: BagExam .java
* @Create : 2019-02-23-15:37
* @Description :
*/
public class BagExam<Item> implements Iterable<Item> {
//
private Node first;
private class Node{
Item item;
Node next;
}
public void add(Item item){
Node oldfirst = first;
first = new Node();
first.item = item;
first.next = oldfirst;
}
@Override
public Iterator<Item> iterator() {
return new ListIterator1();
}
private class ListIterator1 implements Iterator<Item>{
private Node current = first;
@Override
public boolean hasNext() {
return current != null;
}
@Override
public void remove(){}
@Override
public Item next() {
Item item = current.item;
current = current.next;
return item;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하나의 수조를 깊이가 가장 낮은 두 갈래 나무로 바꾸다문제 정의: Givena sorted(increasing order) array, write an algorithm to create abinary tree with minimal height. 생각: 이 문제는 비...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.