Summary posted by: Reshama Shaikh
Introduction
Clair Sullivan, a Developer Advocate for Neo4j, presented to the Data Umbrella community a tutorial on arrays, linked lists and graphs.
It is easy and convenient to treat all data as an array. They are the basis of much of Python and a simple data structure to deal with. But there are times that arrays fail us, such as on element insertion and the pre-allocation of memory. There is power and efficiency in linking data through data structures such as linked lists. We will see how using linked lists can reduce Big O complexity and solve a variety of problems. Then we will explore how graph data structures take this a step further and open up a world of new options and opportunities for efficient computation.
Outline of Tutorial
Below is a summary of topics that were covered:
- PART 1: Arrays
- PART 2: Linked Lists
- PART 3: LeetCode
- PART 4: Graphs
Video
Key Links
Resources
- #IWD2022 1-minute video
- Colab Notebook: welcome.ipynb
- LeetCode reverse linked lists
- Byte Size Neo4j Series of videos
- LeetCode Notebook: leetcode206.ipynb
Summary of Topics
- Arrays
- Lists, a special array
- Linked lists
- Singly-linked
- Doubly-linked
- What to do when all of the above fails?
Section Timestamps of Video
- 00:00:00 Reshama introduces Data Umbrella
- 00:04:39 Clair begins introduction
- 00:06:14 link to repo: data_umbrella_linked_lists
- 00:06:35 Summary of what will be covered
- 00:07:26 Arrays
- 00:08:45 Big O: O(n)
- 00:09:01 Lists: Dynamic Arrays (insert, append)
- 00:10:45 (Singly) Linked List (node, pointer)
- 00:13:05 List Insertion
- 00:14:05 repo intro: data_umbrella_linked_lists
- 00:15:30 list of resources
- 00:17:25 Notebook on linked lists: basic_linked_list
- 00:17:44 Linked List 1: [Create a linked list in python]. There is no data structure in python called linked list. It needs to be created. Here is how.
- 00:20:12 Linked List 2: Insert a new node in the beginning of a list
- 00:21:20 Linked List 3: Insert a new node at the end of list
- 00:22:55 Linked List 4: Insert a new node in between items in a list
- 00:24:20 Linked List 5: Delete a node
- 00:27:39 (Doubly) Linked List
- 00:28:35 Benefits of Linked Lists vs Arrays
- 00:29:54 What You Need to Implement a Linked List
- 00:30:33 LeetCode #206: Reverse a Linked List (Iterative Solution)
- 00:39:11 Graphs: collection of nodes and relationships
- 00:41:47 How to Get Into Graphs with Python
- 00:42:45 Graph python packages vs graph databases
- 00:44:20 sandbox.neo4j.com (get free databases instances)
- 00:52:00 Graph Data Science
- 00:56:00 Cypher query
- 01:00:20 Q&A
About the Speaker
Bio
Dr. Clair Sullivan is currently a data science advocate at Neo4j, working to expand the community of data scientists and machine learning engineers using graphs to solve challenging problems. She received her doctorate degree in nuclear engineering from the University of Michigan in 2002. After that, she worked in a variety of research positions within the US national laboratory and federal government and as a professor at the University of Illinois at Urbana-Champaign. In 2017 she accepted a job at GitHub as a Machine Learning Engineer and in 2021 she joined Neo4j as a Data Science Advocate. She has authored 4 book chapters, over 20 peer-reviewed papers, and more than 30 conference papers.
Connect with the Speaker, Clair Sullivan
- LinkedIn: dr-clair-sullivan
- Twitter: @CJLovesData1
- GitHub: @cj2002