Today is: 2024-11-06 | Current Unit: 02
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 1 | Date: 2013-02-28 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 2 | Date: 2013-03-07 | |||||||||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 3 | Date: 2013-03-14 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 4 | Date: 2013-03-28 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 5 | Date: 2013-04-04 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 6 | Date: 2013-04-11 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 7 | Date: 2013-04-18 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1104C | Issue: 8 | Date: 10-12-2011 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 9 | Date: 2013-05-02 | |||||||||
|
A newsletter published by http://java.skillbuilderblocks.com to help students succeed! | |||||||||
Course: IT310 Data Structures and Algorithms | Vol: 1301C | Issue: 10 | Date: 2013-05-09 | |||||||||
|
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p2bp4y7lw4g/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p1f34ski7m7/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p3hvowlrevb/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p4o28te9bck/
A stack consists of a sequence of items, which should be thought of as piled one on top of the other like a physical stack of boxes or cafeteria trays. Only the top item on the stack is accessible at any given time. It can be removed from the stack with an operation called pop. An item lower down on the stack can only be removed after all the items on top of it have been popped off the stack. A new item can be added to the top of the stack with an operation called push. We can make a stack of any type of items. If, for example, the items are values of type int, then the push and pop operations can be implemented as instance methods
Note that a stack can be implemented either as a linked list or ordered array, though there is a risk of the push operation to result in worst case run time analysis in the case the array is full.
Queues are similar to stacks in that a queue consists of a sequence of items, and there are restrictions about how items can be added to and removed from the list. However, a queue has two ends, called the front and the back of the queue. Items are always added to the queue at the back and removed from the queue at the front. The operations of adding and removing items are called enqueue and dequeue. An item that is added to the back of the queue will remain on the queue until all the items in front of it have been removed. This should sound familiar. A queue is like a "line" or "queue" of customers waiting for service. Customers are serviced in the order in which they arrive on the queue.
A queue can be implemented as a linked list or as an array. An efficient array implementation is a little trickier than the array implementation of a stack.
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p8r618qnr80/
Each of the objects in a binary tree contains two pointers, typically called left and right. In addition to these pointers, of course, the nodes can contain other types of data. For example, a binary tree of integers could be made up of objects of the following type: class TreeNode { int item; // The data in this node. TreeNode left; // Pointer to the left subtree. TreeNode right; // Pointer to the right subtree. } The left and right pointers in a TreeNode can be null or can point to other objects of type TreeNode. A node that points to another node is said to be the parent of that node, and the node it points to is called a child.
The most common traversal uses a depth-first approach and include preorder, postorder and inorder methods. In a preorder traversal, the root node of the tree is processed first, then the left subtree is traversed, then the right subtree. In a postorder traversal , the left subtree is traversed, then the right subtree, and then the root node is processed. And in an inorder traversal , the left subtree is traversed first, then the root node is processed, then the right subtree is traversed.
Searching and inserting are efficient operations on a binary search tree, provided that the tree is close to being balanced. A binary tree is balanced if for each node, the left subtree of that node contains approximately the same number of nodes as the right subtree. In a perfectly balanced tree, the two numbers differ by at most one. Not all binary trees are balanced, but if the tree is created by inserting items in a random order, there is a high probability that the tree is approximately balanced. (If the order of insertion is not random, however, it’s quite possible for the tree to be very unbalanced.) During a search of any binary sort tree, every comparison eliminates one of two subtrees from further consideration. If the tree is balanced, that means cutting the number of items still under consideration in half. This is exactly the same as the binary search algorithm, and the result is a similarly efficient algorithm.
A heap is a special portion of memory where objects are stored. Instead of holding an object itself, a variable holds the information necessary to find the object in memory. This information is called a reference or pointer to the object. In effect, a reference to an object is the address of the memory location where the object is stored. When you use a variable of object type, the computer uses the reference in the variable to find the actual object.
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p7jkfvv0plt/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p8dcd0k9eq3/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p93ko7fvpf3/
The seminar recording covering the following topics is here http://khe2.adobeconnect.com/p3nwmyz3wz8/
From the website http://www.oracle.com/technetwork/java/javase/downloads/index.html you will download the latest copy of the JDK software. I recommend downloading the JDK and NetBeans package. Be sure to choose the correct version for your platform (32 or 64-bit). The download location should be noted. When the download is complete you will double click on the file to install it.
Upon completion of the installation, launch NetBeans (or other IDE). You are now ready to start developing projects
Go to Doc Sharing in the classroom and download the file test.java and save it in a unit01 folder. Create a new project in your IDE. Choose java project with existing sources. Include the folder containing the test.java file. Compile and run the project. Create a screenshot using ctrl-print screen or the snipping tool if you have Windows 7 of your results. See the screenshot for Unit 1 below.
Directions for Submitting Your ProjectWrite an airline ticket reservation program called airline.java. The program should display a menu with the following options:
The information is maintained on an alphabetized linked list of names. Assume that tickets are reserved for only one flight. Create a linked list of flights with each node including a reference to a linked list of passengers.
Create a Java program that prompts the user to enter five cities and the x and y coordinates for each city (latitude and longitude). After all cities have been entered, the program should use a recursive algorithm to print the length of all possible routes that start at the first city entered and end at the last city For each route, the program should print the name of each city visited, followed by the length of the route.
Note: The distance between two points (x1, y1) and (x2, y2) is: Distance = or ((x2 – x1)˛ + (y2 – y1)2)1/2
Create a ClubMember class that represents a member of a fitness club. Use a binary tree to store a set of club members based on their membership ID number. Display the membership ID along with the name of the club members.
Create a transportation logistics system that allows a user to enter a city to city connection and the prices shortest route given that the departure city may or may not have a direct route to the chosen destination (adjacency). Your system should [allow a user to enter two cities and] return the shortest path and the cheapest path between the two cities (NOTE: This has been changed because in this context the terms cost/price refer to resources - the shortest is the least "expensive" in terms of system requirements). Use a directed weighted graph. You may use Dijkstra’s Algorithm or another algorithm available on the Internet or in your text for calculating the shortest path.
In this week's seminar demo I'll show you some basic Swing techniques so you can begin creating GUI projects!
Modify the sorting algorithms located in doc sharing (selection sort, insertion sort, bubble sort, quick sort, and merge sort) by adding code to each to tally the total number of comparisons and total execution time of each algorithm. Execute the sort algorithm against the same list, recording information for the total number of comparisons and total execution time for each algorithm. Try several different lists. Record your results in the table in the attached document.
In a Word document, summarize your analysis of the sorting algorithms along with the tables. Submit the Word document and the modified sorting algorithms in a zip file.
Write a program that inserts records into a hash table and retrieves and deletes them using either extendible hashing or the linear hashing (probing) technique. You may use a Java console or GUI application.
The following is the output of a non-generic implementation of a hash table. Note that you only need methods for put, get, remove, and exit. You will need the TextIO.java class to get it to work.
Note, I have excluded the methods for menu option 5 and menu option 3, so don't forget when you code your main method to exclude them in your menu!
Research the topic of human expressions within culture. You may use the Internet or other sources. Choose a topic that you find interesting and e-mail your professor for topic approval. After topic approval, prepare a two page paper in APA format summarizing your topic. Submit your paper as YourNameUnit9Project.docx.
Part A:
Create an application to be used by a business. A few examples include an order entry system, a simple transportation logistics system for finding the shortest/quickest routes, or a network topology. Use at least three data structures such as a linked list, stack, queue, tree, or graph. In a Word document, create a technical document explaining the program functions and data structures.
Part B:
Based on the knowledge you have achieved thus far in our class, compose a brief synopsis compiling what you have learned about the data structures discussed in class. Describe how you will use this knowledge with any other class, your present or future career, or your own personal life. Be sure to also explain why you feel what has been learned in our class is important to you personally or professionally?
No screen shot for units 9 and 10. If you like, you may use the TextIO.java class for your final project.
Part A:
Create an application to be used by a business. A few examples include an order entry system, a simple transportation logistics system for finding the shortest/quickest routes, or a network topology. Use at least three data structures such as a linked list, stack, queue, tree, or graph. In a Word document, create a technical document explaining the program functions and data structures.
Part B:
Based on the knowledge you have achieved thus far in our class, compose a brief synopsis compiling what you have learned about the data structures discussed in class. Describe how you will use this knowledge with any other class, your present or future career, or your own personal life. Be sure to also explain why you feel what has been learned in our class is important to you personally or professionally?
No screen shot for units 9 and 10. If you like, you may use the TextIO.java class for your final project.
Still not enough time! Hopefully sooner than later.