Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Started With Data Structures

Getting Started With Data Structures

Fbe54abf4094d19f1548783d072a7fa7?s=128

Adora Nwodo

July 29, 2022
Tweet

More Decks by Adora Nwodo

Other Decks in Programming

Transcript

  1. GETTING STARTED WITH DATA STRUCTURES Adora Nwodo

  2. @adoranwodo Hi, I’m Adora! Software Engineer Author Digital Creator

  3. A data structure is a particular way of organizing data

    in a computer so that it can be used effectively. @adoranwodo
  4. @adoranwodo

  5. @adoranwodo

  6. Arrays Linked Lists Stacks Queues Binary Trees Binary Search Trees

    @adoranwodo Heaps Hash Tables Graphs Matrices Tries B-Trees N-ary Trees
  7. Arrays @adoranwodo

  8. An array is a finite collection of elements of the

    same type. @adoranwodo
  9. ★ Arrays are zero indexed. This means that an array

    with n elements is indexed from 0 to n-1. ★ An array has a fixed size. When creating an array, you specify the number of elements the array has. That’s it’s size. ★ Arrays are mutable. Meaning their state or data can be changed. @adoranwodo
  10. var numbers = new int[] {12 , 8, 5, 78};

    @adoranwodo 12 8 78 5 0 1 2 3
  11. When we make an API request to fetch data, ife

    we are getting more than one record, they will usually be returned as a JSON array. When we get the valid JSON array as a response, we can perform whatever action we want on the data. @adoranwodo API RESPONSES REAL LIFE USES OF ARRAYS /* The example below shows looping through a valid API response and printing out the data */ var response = GetAllPendingTransactions(); foreach (var transaction in response) { Console.WriteLine(transaction.Id); Console.WriteLine(transaction.Description); }
  12. Since 2 dimensional arrays are represented as rows & columns

    and matrices are also represented as rows and columns, we can represent matrices as 2 dimensional arrays while programming. Consider the 3x3 matrix below: 2 9 4 0 7 8 3 5 1 It’s equivalent 2d array representation will be: @adoranwodo REPRESENTING MATRICES REAL LIFE USES OF ARRAYS var matrix = new int[3, 3] { // Row 0 { 2 , 9, 4 }, // Row 1 { 0 , 7, 8 }, // Row 2 { 3 , 5, 1 }, }
  13. Generally, arrays are used for storing all sorts of data

    ranging from data from a server, to data in the applications memory and so on. Depending on what your apps logic is, you might need to store a list of things at some point and arrays are one of the most common data structures that exist for this scenario. This data can exist: ★ In your applications memory ★ On a backend database ★ In a cache somewhere ★ In a file on a computer @adoranwodo STORING DATA REAL LIFE USES OF ARRAYS
  14. Linked Lists @adoranwodo

  15. A linked list is a data structure whose order of

    elements is not by their physical placement in memory. Instead, each element has a reference to the next element. @adoranwodo Element 1 Element 2 Element 3 NULL
  16. Each element or node in a linked list has these

    fields. ❖ Data field: This field contains the data that is contained in the node. The programmer can store whatever data they want here, based on what their logic is. ❖ Reference field: This field contains the reference to the next (or previous) node in the sequence depending on the type of linked list. @adoranwodo 45 NODE B NODE A Data Next Ref 10 NODE C NODE B Data Next Ref 200 NODE C Data Next Ref
  17. Types of Linked Lists The differences in Linked Lists are

    based on the multiple types of references possible: ❖ Singly Linked Lists ❖ Doubly Linked Lists ❖ Circular Linked Lists @adoranwodo
  18. In a Singly Linked List, you are only allowed to

    have a “Next” reference. What this means is that you have one reference field that points to the next element in the sequence. @adoranwodo 45 10 200 NULL 45 NODE B NODE A Data Next Ref 10 NODE C NODE B Data Next Ref 200 NODE C Data Next Ref
  19. In a Doubly Linked List, you are allowed to have

    two (double) references. One is a next reference and the other, a previous reference. What this means is that you have two reference fields where one points to the next element in the sequence and the other points to the previous element @adoranwodo 45 NODE B NODE A Data Next Reference 10 NODE C NODE B 200 NODE C 45 10 200 NULL Previous Reference NODE A Data Next Reference Previous Reference Data Next Reference Previous Reference NODE B
  20. In a Circular Linked List, you are allowed to have

    two (double) references. One is a next reference and the other, a previous reference. What this means is that you have two reference fields where one points to the next element in the sequence and the other points to the previous element @adoranwodo 45 NODE B NODE A Data Next Reference 10 NODE C NODE B 200 NODE C 45 10 200 Previous Reference NODE A Data Next Reference Previous Reference Data Next Reference Previous Reference NODE B NODE C NODE A
  21. Creating A Music Playlist With Linked Lists @adoranwodo

  22. @adoranwodo

  23. @adoranwodo

  24. @adoranwodo

  25. @adoranwodo

  26. @adoranwodo

  27. @adoranwodo

  28. @adoranwodo

  29. Hash Tables @adoranwodo

  30. Hash Table is a data structure which stores data in

    an associative manner. In a hash table, data is stored in an array format, where each data value has its own unique index value. Access of data becomes very fast if we know the index of the desired data. @adoranwodo
  31. What is Hashing? Hashing is a technique to convert a

    range of key values into a range of indexes of an array. @adoranwodo
  32. What do you do when you don’t know the answer

    to an interview question? @adoranwodo
  33. What do you do when you don’t know the answer

    to an interview question? USE A HASHMAP @adoranwodo
  34. Stacks @adoranwodo

  35. @adoranwodo

  36. @adoranwodo

  37. @adoranwodo

  38. @adoranwodo

  39. @adoranwodo

  40. Stacks in real applications: ❖ Text editors ❖ String manipulation

    ❖ Browsers @adoranwodo
  41. Queues @adoranwodo

  42. Graphs, Tries and more. Next class? @adoranwodo

  43. Questions? @adoranwodo