Download presentation
Presentation is loading. Please wait.
Published byAmberlynn Banks Modified over 9 years ago
1
ENEE150 – 0102 ANDREW GOFFIN Linked List/Project 3
2
Intro to Linked Lists Essentially a more dynamic array! Goffin – ENEE150
3
Some Linked List Vocab Node Each element in the list: stores data and a “next pointer” Head pointer Points to first element in the linked list Is NULL for an empty list Next pointer Pointer in each node that indicates the next node in the list Is NULL for the last element in the list Tail pointer (if applicable) Points to last element in the linked list Is NULL for an empty list Goffin – ENEE150
4
Defining a linked list Use a struct to define a single node in the list typedef struct node_type{ // type of data depends on application! int data1; float data2; // NEXT POINTER, SUPER IMPORTANT struct node_type *next; } node, *pnode; Goffin – ENEE150
5
Starting a linked list int main(void){ pnode head = NULL; head = (pnode)malloc(sizeof(node)); head->next = NULL; } A single node is allocated Next pointer is NULL, indicating that the node is the last (and only) node in the list Goffin – ENEE150
6
Project 3 Music server Use dynamic data structures to store album, user, and playlist data Goffin – ENEE150
7
Project 3 - Albums Each album is a structure, and all albums can be stored as an array of structures Each structure has three fields: num_tracks – number of tracks on the album tracks – array that stores track names playlist_hits – array that stores number of hits each track gets Goffin – ENEE150
8
Project 3 – User Accounts A linked list of “account” structures Add accounts dynamically to list Each structure has an ID number, playlist linked list (see in two slides), and next pointer The head pointer to the user’s playlist is what is stored in the struct – should be initialized to NULL Goffin – ENEE150
9
Appending to linked lists The last node in a linked list always has its next pointer set to NULL Simple concept: move through next pointers until you get to one that is NULL, and set that equal to your new node Example: append.c Goffin – ENEE150
10
Project 3 - Playlists Playlists are linked lists whose head pointers are in user structs Playlist struct has three fields: album – stores album ID for track track_num – track number on that particular album next pointer for linked list Can retrieve track name using album, track_num, and the album array! Goffin – ENEE150
11
Other Project 3 Information You will take command line arguments for this project An “album” file and a “transaction” file The former stores album data, the latter stores “transaction” data Transactions include: printing albums, modifying playlists, creating user accounts, etc. Each transaction has a particular transaction ID Goffin – ENEE150
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.