your programing

자바 스크립트 데이터 구조 라이브러리

lovepro 2020. 12. 25. 23:34
반응형

자바 스크립트 데이터 구조 라이브러리


우선 순위 대기열, 임의의 키가있는 맵, 시도, 그래프 등과 같은 일부 기본 데이터 구조의 구현을 제공하는 JavaScript 라이브러리 / 라이브러리에 대한 권장 사항을 요청하고 싶습니다.

나는 주로 다음에 관심이 있습니다.

  • 다루는 기능 세트,
  • 솔루션의 유연성-이는 대부분 그래프에 적용됩니다. 예를 들어 제공된 그래프 구현을 사용해야합니까?
  • 언어의 기능적 기능 사용-다시 한 번 더 큰 유연성을 제공합니다.
  • 구현 성능

다음 데이터 구조를 JavaScript를 사용하여 구현할 수 있다는 것을 알고 있습니다.

  • 키 값이 문자열 또는 숫자 인 경우 맵,
  • 집합 (지도 구현 사용),
  • 대기열은 아래에서 지적했듯이 일부 브라우저에서는 비효율적입니다.

현재 저는 주로 우선 순위 대기열 (일반 대기열과 혼동하지 말 것)에 관심이 있습니다. 그래프 구현은 입력 그래프의 형식에 그다지 방해가되지 않습니다. 예를 들어, 고정 된 이름을 가진 구체적인 속성에 액세스하는 대신 콜백을 사용하여 그래프의 구조를 탐색 할 수 있습니다.


Closure Library (특히 클로저 컴파일러 사용)를 사용하는 것이 좋습니다.

여기에 goog.structs 데이터 구조가있는 라이브러리가 있습니다 . 라이브러리에는 다음이 포함됩니다.

goog.structs.AvlTree
goog.structs.CircularBuffer
goog.structs.Heap
goog.structs.InversionMap
goog.structs.LinkedMap
goog.structs.Map
goog.structs.PriorityQueue
goog.structs.Set

예를 들어 단위 테스트를 사용할 수 있습니다 : goog.structs.PriorityQueueTest .

배열 작업이 필요한 경우 배열 lib : goog.array도 있습니다.

주석에서 언급했듯이 소스는 github.com/google/closure 로 이동 했으며 문서의 새 위치는 google.github.io/closure-library 입니다.


당신이 시도 할 수 양동이 포함하는 매우 완전한 자바 스크립트 데이터 구조 라이브러리입니다 :

  • 연결된 목록
  • 사전
  • 다중 사전
  • 이진 검색 트리
  • 스택
  • 세트
  • 가방
  • 바이너리 힙
  • 우선 순위 대기열

아마도 여러분이 원하는 대부분은 어떤 식 으로든 Javascript에 내장되어 있거나 내장 기능과 쉽게 결합 될 수 있습니다 (네이티브 Javascript 데이터 구조는 매우 유연합니다). 당신은 JSClass를 좋아할 것 입니다.

언어의 기능적 특징에 관해서 underscore.js 가 있습니다.


임의의 키가있는 맵에 대해 도움을 드릴 수 있습니다. 내 jshashtable 이이 작업을 수행하고 그 위에 구축 된 해시 세트 구현도 있습니다.


효율적인 대기열 .

더 많은 것을 찾으면 jswiki에 추가해 주시겠습니까 ? 감사. :)


자바 스크립트가 애플리케이션에 있습니까, 아니면 웹 페이지에 있습니까? 애플리케이션 용이라면 데이터 구조를 Redis에 아웃소싱하지 않으 시겠습니까? 있다 nodejs에 대한 클라이언트

Redis는 오픈 소스의 고급 키-값 저장소입니다. 키에는 문자열, 해시, 목록, 집합 및 정렬 된 집합이 포함될 수 있으므로 데이터 구조 서버라고도합니다.


이 스레드에 대한 방문자의 향후 참조를 위해 우선 순위 대기열, 시도, 기본 그래프 처리 및 기타 구현을 제공하는 사용자 정의 자바 스크립트 라이브러리에 대한 링크 추가. dsjslib 확인


특히 그래프와 같은 구조의 경우 graphlib가 매우 편리합니다.

https://github.com/cpettitt/graphlib/wiki/API-Reference

내가 시도한 다른 구현보다 매우 간단하고 빠르며 모든 기본 기능, 인기있는 그래프 알고리즘 및 JSON 데이터 내보내기가 있습니다.


data.js .

나는 그것이 당신이 원하는만큼 풍부한 기능이라고 생각하지 않지만 그래프, 해시 및 컬렉션을 가지고 있습니다.

나는 이것을 당신이 확장 할 수있는 가벼운 시작이라고 생각한다.

그것이 제공하는 것에 관해서는 잘 작성되고 효율적이며 문서화되어 있습니다.

ReferenceURL : https://stackoverflow.com/questions/5909452/javascript-data-structures-library

반응형