Linked Lists/Java/Single
From charlesreid1
Lists
Singly-linked list:
- This is covered even in introductory computer science course - the linked list is so important that it is the first data structure that computer science students build that is not part of the API. In Python, these details are so abstracted that even advanced Python users might not know how to implement low-level arrays of memory. (Cython users will though.)
- The LinkedList class implements a Node class that consists of a single piece of data and a single link to the next node.
- These classes are often implemented, initially, as storing primitive types like integers, or hard-coding a type for the objects.
- The next level of abstraction is to implement them as storing a generic Object type. This works fine for simple examples, but in practice it requires messy type-checking and bad abstractions. Okay for older versions of Java.
- Optimal is to use diamond syntax and write class in terms of templated/generic type. Same idea as templating in C++ (link: Cpp/Templates).
Doubly-linked
- The Java Collections API implements a doubly-linked list.
- Double linked list requires buffer nodes header and trailer, or alpha and omega
Abstract Data Type
For more info on abstract data types (ADT) see Abstract Data Types
Flags
| Data StructuresPart of Computer Science Notes This is the staging ground for computer science notes as part of the 2017 CS Study Plan. 
 Classes of data structures: Abstract Data Types Array-based and Link-based memory management: ArrayLists and Linked Lists Algorithmic Analysis of Data Structures: Algorithmic Analysis of Data Structures Advanced data structures: Advanced Data Structures 
 | 
| ArraysPart of Computer Science Notes Series on Data Structures Python: Arrays/Python · Arrays/Python/Sizeof · Arrays/Python/AppendCost · Arrays/Python/CaesarCipher · Arrays/Python/CompactArrays · Arrays/Python/DynamicArray Java: Arrays/Java · Arrays/Java/CaesarCipher · Arrays/Java/FisherYates · Arrays/Java/PythonList · Arrays/Java/Repeatedly_Remove Categories: Category:Python Arrays 
 | 
| Stacks and QueuesPart of Computer Science Notes Series on Data Structures 
 
 Stacks and Queues: Python StacksQueues/Python · StacksQueues/Python/ArrayStack · StacksQueues/Python/ArrayQueue · StacksQueues/Python/ArrayDeque StacksQueues/Python/LinkedStack 
 Stacks and Queues: Java StacksQueues/Java · StacksQueues/Java/ArrayStack · StacksQueues/Java/ArrayQueue · StacksQueues/Java/ArrayQueueFS · StacksQueues/Java/ArrayDeque StacksQueues/Java/LinkedStack · StacksQueues/Java/LinkedQueue · StacksQueues/Java/LinkedDeque 
 Applications Postfix_Expressions#Stacks · StacksQueues/Subsets · StacksQueues/Subsets/Java 
 | 
| Priority Queues and HeapsPart of Computer Science Notes Series on Data Structures 
 Java: Priority Queues/Java · Priority Queues/ADT · Priority Queues/Sorted · Priority Queues/Unsorted Performance: Priority Queues/Timing and Performance Applications: Maximum Oriented Priority Queue · Priority Queues/Stack 
 Priority Queues/Heap · Priority Queues/Java · Priority Queues/Comparators 
 | 
| Linked ListPart of Computer Science Notes Series on Data Structures Java: Linked Lists/Java · Linked Lists/Java/Single · Linked Lists/Java/Double · Linked Lists/Java/Circular Performance: Linked Lists/Java/Timing · Linked Lists/Java/Reverse Python: Linked Lists/Python · Linked Lists/Python/Single 
 | 
| TreesPart of Computer Science Notes Series on Data Structures Abstract data type: Trees/ADT Concrete implementations: Trees/LinkedTree · Trees/ArrayTree · SimpleTree 
 Tree Traversal Preorder traversal: Trees/Preorder Postorder traversal: Trees/Postorder In-Order traversal: Binary Trees/Inorder Breadth-First Search: BFS Breadth-First Traversal: BFT Depth-First Search: DFS Depth-First Traversal: DFT OOP Principles for Traversal: Tree Traversal/OOP · Tree Traversal/Traversal Method Template Tree operations: Trees/Operations Performance · Trees/Removal 
 Tree Applications Finding Minimum in Log N Time: Tree/LogN Min Search 
 Abstract data type: Binary Trees/ADT Concrete implementations: Binary Trees/LinkedBinTree · Binary Trees/ArrayBinTree Binary Trees/Cheat Sheet · Binary Trees/OOP · Binary Trees/Implementation Notes 
 | 
| Search TreesPart of Computer Science Notes Series on Data Structures 
 Binary Search Trees · Balanced Search Trees Trees/OOP · Search Trees/OOP · Tree Traversal/OOP · Binary Trees/Inorder 
 (Note that heaps are also value-sorting trees with minimums at the top. See Template:PriorityQueuesFlag and Priority Queues.) 
 | 
| Maps and DictionariesPart of Computer Science Notes Series on Data Structures 
 
 Maps/Dictionaries Maps · Maps/ADT · Maps in Java · Maps/OOP · Maps/Operations and Performance Map implementations: Maps/AbstractMap · Maps/UnsortedArrayMap · Maps/SortedArrayMap Dictionary implementations: Dictionaries/LinkedDict · Dictionaries/ArrayDict 
 Hashes Hash Maps/OOP · Hash Maps/Operations and Performance Hash Maps/Dynamic Resizing · Hash Maps/Collision Handling with Chaining Hash functions: Hash Functions · Hash Functions/Cyclic Permutation Hash map implementations: Hash Maps/AbstractHashMap · Hash Maps/ChainedHashMap 
 Skip Lists · Java/ConcurrentSkipList · Java implementations: SkipList 
 Sets Sets · Sets/ADT · Sets in Java · Sets/OOP · Multisets 
 | 

