Download presentation

Presentation is loading. Please wait.

Published byRichard Banbury Modified over 2 years ago

1
Ceng-112 Data Structures I 1 Chapter 3 Linear Lists

2
Ceng-112 Data Structures I 2 Linear Lists Arrays are inefficient whenever sequenced data need to be inserted or deleted. The linked list efficiently handles insertions and deletions. But it is inefficient for search and retrieval.

3
Ceng-112 Data Structures I 3 Figure 3-1 Linear Lists

4
Ceng-112 Data Structures I 4 Figure 3-2 Linear Lists Operations are; 1.Insertion 2.Deletion 3.Retrieval 4.Traversal (exception for restricted lists).

5
Ceng-112 Data Structures I 5 Figure 3-3 Linear Lists Insertion

6
Ceng-112 Data Structures I 6 Figure 3-4 Linear Lists Deletion

7
Ceng-112 Data Structures I 7 Figure 3-5 Linear Lists Retrieval

8
Ceng-112 Data Structures I 8 Figure 3-6 Linked Lists

9
Ceng-112 Data Structures I 9 Linked Lists Advantage of linked lists; –Data are easily inserted or deleted. It is not necessary to shift elements of a linked list. Disadvantage of linked lists; –We are limited to sequential searches.

10
Ceng-112 Data Structures I 10 Figure 3-7 The elements in a linked list are called nodes. The nodes in a linked list are called self-referential structures. In a self referential structure, each instance of the structure contains a pointer to another instance of the same structural type. Linked Lists

11
Ceng-112 Data Structures I 11 Figure 3-8

12
Ceng-112 Data Structures I 12 Figure 3-9 Create List

13
Ceng-112 Data Structures I 13 Create List Algorithm createList Allocate dynamic memory for a linked list head node and returns its address to caller. PRE Nothing POST Head node allocated or error returned RETURN head node pointer or null if memory overflow 1. if (memory available) 1. allocate (pNew) 2. pNew head =null pointer 3. pNew count = 0 2. else 1. pNew = null pointer 3. return pNew end createList

14
Ceng-112 Data Structures I 14 Insert Node Adds data to a linked list. 1.Allocate memory for the new node and insert data. 2.We need to know the location of the node that precedes the new node. 1.If predecessor is null, it means that there is no predecessor to the data being added or adding to an empty list or at the beginning of the list. 2.Otherwise, adding to middle of the list or end of the list. 3.Point the new node’s predecessor to it.

15
Ceng-112 Data Structures I 15 Figure 3-10 Insert Node

16
Ceng-112 Data Structures I 16 Figure 3-11 Insert Node

17
Ceng-112 Data Structures I 17 Figure 3-12 Insert Node

18
Ceng-112 Data Structures I 18 Figure 3-13 Insert Node

19
Ceng-112 Data Structures I 19 Algorithm insertNode(val pList, val pPre, val dataIn ) Insert data into a new node in the linked list. PRE pList is a pointer to a valid list head structure pPre is a pointer to data’s logical predecessor dataIn contains data to be inserted POST data have been inserted in sequence RETURN true if seccessful, false if memory overflow Insert Node

20
Ceng-112 Data Structures I 20 1. allocate (pNew) 2. if (memory overflow) return false 3. pNew data = dataIn 4. if (pPre null) Adding before first node or to empty list. 1. pNew link = pList head 2. pList head = pNew 5. else Adding in middle or at end. 1. pNew link = pPre link 2. pPre link = pNew 6. pList count = pList count + 1 7. return true end insertNode Insert Node

21
Ceng-112 Data Structures I 21 Figure 3-14 Delete Node

22
Ceng-112 Data Structures I 22 Figure 3-15 Delete Node

23
Ceng-112 Data Structures I 23 Algorithm deleteNode(val pList, val pPre, val pLoc, ref dataOut ) Deletes data from a linked list and returns it to calling module. PRE pList is a pointer to a valid list head structure pPre is a pointer to predecessor node pLoc is a pointer to node to be deleted dataOut is address to pass deleted data to calling module POST data have been deleted and return to caller Delete Node

24
Ceng-112 Data Structures I 24 1. dataOut = pLoc data 2. if (pPre null) Deleting firt node. 1. pList head = pLoc link 3. else Deleting in middle or at end. 1. pPre link = pLoc link 4. pList count = pList count – 1 5. release pLoc 6. return end deleteNode Delete Node

25
Ceng-112 Data Structures I 25 Figure 3-16 Search List

26
Ceng-112 Data Structures I 26 Algorithm searchList(val pList, val pPre, val pLoc, ref target ) Searches list and passes back address of node containing target. PRE pList is a pointer to a valid list head structure pPre is a pointer variable to receive predecessor node pLoc is a pointer to receive current node target is the key being sought POST pLoc points to first note with equal or greater than target key or null if target > key of last node pPre points to largest node smaller than key or null if target < key of first node Search List

27
Ceng-112 Data Structures I 27 1.pPre = null 2.pLoc = pList head 3.loop (pLoc not null AND target > pLoc data.key 1.pPre = pLoc 2.pLoc = pLoc link Set return value 4. if (pLoc is null) 1. found = false 5. else 1. if (target equal pLoc data.key) 1. found = true 2. else 1. found = false 6. return found end searchList Search List

28
Ceng-112 Data Structures I 28 Figure 3-17 Traverse List pWalker = pList head loop (pWalker not null) process(pWalker data) pWalker = pWalker link

29
Ceng-112 Data Structures I 29 Algorithm traverse(val pList, val fromWhere, ref dataPtr ) Traverses a linked list. Each call returns the location of an element in the list. PRE pList is a pointer to a valid list head structure fromWhere is 0 to start at the first element dataPtr is the address of a pointer to data POST address places in dataPtr and returns true or if end of list, returns false. RETURN true if next element located, false if end of list. Traverse List

30
Ceng-112 Data Structures I 30 1.if (fromWhere is 0) start from first 1. if (pList count is zero) return false 2. else 1. pList pos = pList head 2. dataPtr = address(pList pos data) 3. return true 2. else start from pos 1. if (pList pos link is null) end of list 1. return false 2. else 1. pList pos = pList pos link 2. dataPtr = address(pList pos data) 3. return true end traverse Traverse List

31
Ceng-112 Data Structures I 31 Sample Definition typedef struct node {int number; struct NODE *link; }NODE; typedef struct {int count; NODE *pos; NODE *head; NODE *rear; }LIST;

32
Ceng-112 Data Structures I 32 HW-3 Create node structure to process the student information. The student number should be the key info. Follow the all remarks and instructions in your text book pages from 91 to 97 and build the your C codes to satisfy the defined requirements. Load your HW-3 to FTP site until 29 Mar. 07 at 17:00.

Similar presentations

OK

Data Structures( 数据结构 ) Course 8: Search Trees. 2 西南财经大学天府学院 Chapter 8 search trees Binary search trees and AVL trees 8-1 Binary search trees Problem:

Data Structures( 数据结构 ) Course 8: Search Trees. 2 西南财经大学天府学院 Chapter 8 search trees Binary search trees and AVL trees 8-1 Binary search trees Problem:

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on product advertising cartoons Ppt on company law board Doc to ppt online converter free Ppt on microsoft surface technology Animated ppt on magnetism worksheets Ppt on advancement in science and technology Ppt on business communication skills Ppt on summary writing example Ppt on data collection methods in healthcare Ppt on operating system concepts