Storing street addresses with doubly linked lists, Data Structure & Algorithms

Write a C++ program with header and source les to store street addresses using the Doubly Linked List ADT. Modify the Node class from Lab Assignment 3 so that it becomes a node in a Doubly Linked List. All the fields in the address can be maintained as before. Create a header le called AddrDList.h and a C++ le called Ad- drDList.cpp. In the header le, de ne the Node class and declare any functions required to maintain the Doubly Linked List. Refer to the class lecture slides to see what functions you may need. Implement the necessary functions in the AddrDList.cpp le. Create another C++ le called TestAddrDList.cpp. This le should read input from a redirected le or terminal, parse the input commands and call the necessary Linked List functions. The following commands and options are allowed:

1. Insert h


- is a comma separated street address that is inserted at the head of the list.

2. Insert


- addr1 and addr2 are comma separated street addresses. Your program should find the position of the address addr2 in the list and insert addr1 c=b before or c=a after addr2. If addr2 is not found, do nothing.

3. Display

where order will be one of two strings - ftoe or etof. In the case of the former, display all the nodes in the list from the beginning (head) to the end. For the latter, display all the nodes from the end to the beginning (Hint: use the previous pointer ). Each address is separated by a single empty line. If display is called more than once, there is only one empty line between the last address of the first display and the first address of the second display.

4. Delete addr

Where addr is the address to be deleted. If the address is not found, do nothing.

A sample input file will look like this:

insert h 202,West Main Street,Post,TX,79356

insert 203,West Main Street,Post,TX,79356 a 202,West Main Street,Post,TX,79356

insert 204,West Main Street,Post,TX,79356 b 203,West Main Street,Post,TX,79356

display ftoe

Sample output after the display command in the above input example:


Street: West Main Street

City: Post

State: TX



Street: West Main Street

City: Post

State: TX



Street: West Main Street

City: Post

State: TX

Zip: 79356

Note that the address in the input le has to be parsed and stored in the different fields (number, street etc.) of the object. Each time your program compares the address stored in the node, it must compare every field.

2 Deliverables

The following les are to be zipped into a single le (with your eraider login name) and uploaded to Blackboard.

1. Source les: The two C++ and one header le. Source and header les must include relevant comments explaining the code.

2. README: Explain in a few lines what each program does and how to compile and run your programs. Also include your own name, eraider login and the date at the top of the le.

Please do not include any other les including executables or Visual Studio Project les. If you use Visual Studio for the assignment, you must first figure out how to redirect input and include command line arguments. Points will be assigned for clean compilation without warnings or errors. If your program does not compile, it fails all test cases by default. Your program will not be graded if the naming conventions specified in this document are not followed.

Posted Date: 2/19/2013 12:03:02 AM | Location : United States

Related Discussions:- Storing street addresses with doubly linked lists, Assignment Help, Ask Question on Storing street addresses with doubly linked lists, Get Answer, Expert's Help, Storing street addresses with doubly linked lists Discussions

Write discussion on Storing street addresses with doubly linked lists
Your posts are moderated
Related Questions
In a chained hash table, each table entry is a pointer to a collection of elements. It can be any collection that supports insert, remove, and find, but is commonly a linked list.

Example: Assume the following of code: x = 4y + 3 z = z + 1 p = 1 As we have been seen, x, y, z and p are all scalar variables & the running time is constant irrespective

Determine the number of character comparisons made by the brute-force algorithm in searching for the pattern GANDHI in the text

Technique for direct search is    Hashing is the used for direct search.

Determine about the Post conditions assertion A  post condition is an assertion which should be true at completion of an operation. For instance, a post condition of the squ

Now, consider a function that calculates partial sum of an integer n. int psum(int n) { int i, partial_sum; partial_sum = 0;                                           /* L

(1) Sort a list of distinct numbers in ascending order, using the following divide- and-conquer strategy (Quicksort): divide the list of numbers into two lists: one that contains a

Readjusting for tree modification calls for rotations in the binary search tree. Single rotations are possible in the left or right direction for moving a node to the root position

Merge sort: Merge sort is a sorting algorithm that uses the idea of split and conquers. This algorithm splits the array into two halves, sorts them separately and then merges t

Q. Devise a representation for a given list where insertions and deletions can be made at both the ends. Such a structure is called Deque (which means Double ended queue). Write fu