Skip to content

Repository files navigation

Data Structures

Implementations of classic data structures in C/C++ with a partial Go reimplementation.


Project Structure

Data-Structures/
├── ptr_arithmatic.c # Pointer arithmetic demo
├── c_string_manipulation/ # C string library demos (C++)
├── linked_list.c/ # Linked list implementations (C)
├── stack_Queue/ # Stack & Queue implementations (C)
├── trees/ # Tree data structures (C)
├── sorting/ # Sorting algorithms (C)
└── go reimplementation/ # Go reimplementation of selected structures
├── color/ # ANSI color constants
├── linkedlist/ # Linked list implementations
└── stack_queue/ # Stack & Queue implementations

C Implementations

c_string_manipulation/ — C String Functions

Demos of the C string manipulation library (<cstring>), written in C++.

FileFunction(s)Description
strlen.cppstrlenCompute string length
strcat.cppstrcat, strncatConcatenate two strings (full & bounded)
strcpy-strncpy.cppstrcpy, strncpyCopy strings (full & bounded)
strncmp-strncmp.cppstrncmpCompare two strings up to n characters
strchrr.cppstrchrFind all occurrences of a character in a string

See c_string_manipulation/README.md for details.


linked_list.c/ — Linked Lists

Contains singly, doubly, and circular linked list implementations.

FileTypeOperations
normal_ll.cSinglyCreate (prepend), traverse, free
normal_ll2.cSinglyInsert at beginning, delete from beginning
normal_ll3.cSinglyInsert at end, delete from end
normall_ll4.cSinglyInsert at any position, delete at any position
normal__1.1.cSinglyRecursive insert, string data (char*)
swapping_nodes.cSinglySwap two nodes by ID
middle_node.cSinglyFind middle node (count & re-traverse)
shortllist.cSinglySort by ticket number using bubble sort
d_normal_ll.cDoublyInsert at end, delete from front/back, forward & backward print
d_norma_ll2.cDoublyInsert at any position (front/back), delete at any position (front/back)
c_normal_ll.cCircularRecursive creation, circular traversal

Naming convention:

  • normal_ll... — Singly linked list
  • d_normal_ll... — Doubly linked list
  • c_normal_ll... — Circular linked list

See linked_list.c/README.md for details.


stack_Queue/ — Stack & Queue

FileStructureOperations
stack.cStack (array-based)Push, pop
toh.cStack applicationTower of Hanoi (recursive)
infex_postfix.cStack applicationInfix to postfix conversion
simple_queue.cLinear queue (array-based)Enqueue, dequeue
circular_queue.cCircular queue (array-based)Enqueue, dequeue (wraparound)
header.hShared headerOperator stack utilities for infix-postfix

See stack_Queue/README.md for details.


trees/ — Tree Data Structures

FileStructureOperations
simple_tree.cBinary treeRecursive creation, inorder traversal
bst.cBinary search treeInsert, inorder/preorder/postorder traversal
bst_2.cBinary search treeInsert, delete (leaf/one-child/two-children), find inorder successor, inorder traversal

See trees/README.md for details.


sorting/ — Sorting Algorithms

FileAlgorithmTime ComplexityNotes
bubble_sort.cBubble sortO(n²)Early-exit optimization (flag-based)
selection_sort.cSelection sortO(n²)Standard implementation
insertion_sort.cInsertion sortO(n²)Standard implementation

See sorting/README.md for details.


ptr_arithmatic.c — Pointer Arithmetic

Demonstrates 5 categories of C pointer operations:

  • Pointer increment (ptr++)
  • Pointer addition (ptr + i)
  • Pointer subtraction (distance/size computation)
  • Pointer comparison (equality / element lookup)
  • Pointer comparison (greater-than / range check)

Go Reimplementation

See go reimplementation/README.md for full details.

Quick summary:

  • color/ — ANSI escape code constants package
  • linkedlist/ — Doubly linked list, circular singly linked list, node swapping, middle node (Tortoise & Hare), recursive singly linked list
  • stack_queue/ — Dynamic stack, Tower of Hanoi, bounded Tower of Hanoi, parenthesis checker, linear queue, circular queue, priority queue, deque

Languages Used

  • C / C++ — Primary implementation language
  • Go — Partial reimplementation with improved algorithms

About

Implementations of classic data structures in C.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages