Java java지도 시간 JAVA 핵심 데이터 구조 및 알고리즘 구현

JAVA 핵심 데이터 구조 및 알고리즘 구현

Nov 08, 2023 pm 12:35 PM
java 데이터 구조 연산

JAVA 핵심 데이터 구조 및 알고리즘 구현

기사 공간이 제한되어 있으므로 주요 데이터 구조와 알고리즘의 구현 예를 몇 가지 제공하겠습니다. 먼저 몇 가지 핵심 데이터 구조와 알고리즘을 소개한 다음 해당 Java 코드 예제를 제공합니다. ArrayplIMPLEMENT 동적으로 확장 된 배열 형상 배열의 추가, 삭제, 수정 및 확인 작업의 작업은 단일 링크 된 목록 이식을 사용합니다. 연결된 목록의 추가, 삭제, 수정 및 확인 작업

    public class DynamicArray<T> {
        private Object[] array;
        private int size;
        private int capacity;
    
        public DynamicArray() {
            capacity = 10;
            array = new Object[capacity];
            size = 0;
        }
    
        public void add(T element) {
            if (size == capacity) {
                capacity *= 2;
                Object[] newArray = new Object[capacity];
                System.arraycopy(array, 0, newArray, 0, size);
                array = newArray;
            }
            array[size++] = element;
        }
    
        public T get(int index) {
            if (index < 0 || index >= size) throw new IndexOutOfBoundsException();
            return (T) array[index];
        }
    
        public void remove(int index) {
            if (index < 0 || index >= size) throw new IndexOutOfBoundsException();
            for (int i = index; i < size - 1; i++) {
                array[i] = array[i + 1];
            }
            size--;
        }
    }
  1. stack
    • 배열 기반 스택 구현
    • 스택 푸시, 팝 및 기타 작업 구현
    public class ListNode {
        int val;
        ListNode next;
    
        ListNode(int val) {
            this.val = val;
        }
    }
    
    public class LinkedList {
        private ListNode head;
    
        public void addAtHead(int val) {
            ListNode newHead = new ListNode(val);
            newHead.next = head;
            head = newHead;
        }
    
        public void addAtTail(int val) {
            if (head == null) {
                head = new ListNode(val);
            } else {
                ListNode current = head;
                while (current.next != null) {
                    current = current.next;
                }
                current.next = new ListNode(val);
            }
        }
    
        public void deleteAtIndex(int index) {
            if (index == 0) {
                head = head.next;
                return;
            }
            int count = 0;
            ListNode current = head;
            ListNode prev = null;
            while (current != null && count < index) {
                prev = current;
                current = current.next;
                count++;
            }
            if (current != null) {
                prev.next = current.next;
            }
        }
    
        public ListNode get(int index) {
            ListNode current = head;
            int count = 0;
            while (current != null && count < index) {
                current = current.next;
                count++;
            }
            return current;
        }
    }
  1. queue
    • 배열 기반 큐 구현
    • 큐 엔큐, 큐 제거 및 기타 작업 구현
    public class ArrayStack {
        private int[] array;
        private int top;
        private int capacity;
    
        public ArrayStack(int capacity) {
            this.capacity = capacity;
            array = new int[capacity];
            top = -1;
        }
    
        public void push(int value) {
            if (top == capacity - 1) throw new IllegalStateException("Stack is full");
            array[++top] = value;
        }
    
        public int pop() {
            if (top == -1) throw new IllegalStateException("Stack is empty");
            return array[top--];
        }
    
        public int peek() {
            if (top == -1) throw new IllegalStateException("Stack is empty");
            return array[top];
        }
    
        public boolean isEmpty() {
            return top == -1;
        }
    }
  1. 정렬 알고리즘
    • 버블 정렬, 삽입 정렬, 선택 정렬, 퀵 정렬 및 기타 알고리즘 구현
  2. public class ArrayQueue {
        private int[] array;
        private int front;
        private int rear;
        private int capacity;
    
        public ArrayQueue(int capacity) {
            this.capacity = capacity;
            array = new int[capacity];
            front = 0;
            rear = -1;
        }
    
        public void enqueue(int value) {
            if (rear == capacity - 1) throw new IllegalStateException("Queue is full");
            array[++rear] = value;
        }
    
        public int dequeue() {
            if (isEmpty()) throw new IllegalStateException("Queue is empty");
            int value = array[front];
            front++;
            return value;
        }
    
        public int peek() {
            if (isEmpty()) throw new IllegalStateException("Queue is empty");
            return array[front];
        }
    
        public boolean isEmpty() {
            return front > rear;
        }
    }
위 내용은 핵심 데이터 구조와 알고리즘의 Java 구현 예입니다. 도움이 되길 바랍니다.

    위 내용은 JAVA 핵심 데이터 구조 및 알고리즘 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

    핫 AI 도구

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    Video Face Swap

    Video Face Swap

    완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

    뜨거운 도구

    메모장++7.3.1

    메모장++7.3.1

    사용하기 쉬운 무료 코드 편집기

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    SublimeText3 Mac 버전

    SublimeText3 Mac 버전

    신 수준의 코드 편집 소프트웨어(SublimeText3)

    뜨거운 주제

    Java의 해시 맵은 무엇입니까? Java의 해시 맵은 무엇입니까? Aug 11, 2025 pm 07:24 PM

    ahashmapinjavaisadartructurestoreskey-valuepairsefairfairsforefficientRetrieval, insertion, anddeletion.itusestHekey'ShashCode () methodTodEterMinestoragelocationAldowSaverAgeo (1) timecomplexityforget () 및 putations.usitorderd, permitsonulkyAndm

    자바에서 배열을 생성하고 사용하는 방법 자바에서 배열을 생성하고 사용하는 방법 Aug 11, 2025 pm 04:00 PM

    TorecreateAnarrayinjava, FirstDeclareTheArraywithThedatAtypeandSquarebrackets, thenInstantiateTwithThenwithKeywordorinitializeItdirectlyWithValues; 1.decleAndcreateArrayusingDatatAty [] arrayName = newDatatype [Or.InitiDattyTyteate];

    Java에서 스레드를 어떻게 만드나요? Java에서 스레드를 어떻게 만드나요? Aug 11, 2025 pm 01:34 PM

    youcancreateathreadinjavabyextendingtheThreadClassOrimplementingTherunnableInterface.2

    Java에서 세트를 사용하는 방법 Java에서 세트를 사용하는 방법 Aug 11, 2025 am 11:57 AM

    ChooseTheAppropriatesEtimementation : useHashSetForfEStOperationswithOutOrder, LinkedHashSetForInsertionOrder.2.AdDlementSwitHAdd () AndRemoveWithRemove (), whereadd () returnSfalSeifTheelementIsalPresent.3.checkforelementsUsi

    Python Argparse 필수 인수 예제 Python Argparse 필수 인수 예제 Aug 11, 2025 pm 09:42 PM

    ArgParse 모듈을 사용하는 경우 필요한 = true를 설정하여 제공 해야하는 매개 변수를 달성 할 수 있습니다. 1. reque yewing = true 옵션 매개 변수 (예 : -입력)를 설정하려면 true가 필요합니다. 스크립트를 실행할 때 제공되지 않으면 오류 가보고됩니다. 2. 위치 매개 변수는 기본적으로 필요하며, 필요한 = true를 설정할 필요가 없습니다. 3. 필요한 매개 변수에 위치 매개 변수를 사용하는 것이 좋습니다. 때때로, 필요한 = true의 선택적 매개 변수는 유연성을 유지하는 데 사용됩니다. 4. 필수 = true는 매개 변수를 제어하는 가장 직접적인 방법입니다. 사용 후 사용자는 스크립트를 호출 할 때 해당 매개 변수를 제공해야합니다. 그렇지 않으면 프로그램에 오류가 발생하고 종료됩니다.

    스프링 부팅으로 자바에서 요청 매개 변수를 사용하는 방법 스프링 부팅으로 자바에서 요청 매개 변수를 사용하는 방법 Aug 11, 2025 pm 07:51 PM

    SpringBoot에서 요청 매개 변수를 처리하는 방법에는 다음이 포함됩니다. 1. @requestparam을 사용하여 쿼리 매개 변수를 얻습니다. 2. 목록 또는 맵 유형을 통해 동일한 이름의 여러 매개 변수를받습니다. 3. @ModelAttribute와 함께 여러 매개 변수를 물체에 바인딩하고; 4. @PathVariable을 사용하여 URL 경로에서 변수를 추출하십시오. 5. @requestparam을 사용하여 사후 요청에서 데이터를 처리합니다. 6. 맵을 사용하여 모든 요청 매개 변수를 수신하십시오. 올바른 주석을 선택하면 요청 된 데이터를 효율적으로 구문 분석하고 개발 효율성을 향상시킬 수 있습니다.

    Java의 의견은 무엇입니까? Java의 의견은 무엇입니까? Aug 12, 2025 am 08:20 AM

    CommentSinjavaIgNEDBYTHECOMPILERDOUDSTROXPLANATION, NOTES, ORDISABLINGCODE.THEREARETHREETYPES : 1) 단일 LINECOMMENTSSTARTWITH // andlastuntilTheEndoftheline; 2) Multi-Linecommentsbeginwith/andcanspanmultiplelines; 3) 문서 작성

    Java 개발을위한 최고의 IDE : 비교 검토 Java 개발을위한 최고의 IDE : 비교 검토 Aug 12, 2025 pm 02:55 PM

    thebestjavaidein2024DependsonyOURNEEDS : 1. chooseIntellijideaforProfectional, Enterprise, Orfull-StackdevelopmentDuetoitsSuperiorCodeIntelligence, Frameworkintegration 및 andtoompsepsececececepomececupongati

    See all articles