Lab 5

Description:
In this lab we basically, allow user to enter string, double and integer and have the string, integer, and double to display in ascending order, original order, reverse order and display the data variables without duplicates.We basically used the following:1. For Original order display, we just used arrays. 2. For the reverse order we used the stack push which causes the last element to pop out first. 3. For ascending order, we used priority queue which causes the output to display from the highest to lower order. 4. For non repetition, we just used hashset, to achieve our goal.

code:

//importing data structure types
import java.util.LinkedHashSet;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Set;
import java.util.Stack;


public class DataStructures {

	public static void main(String[] args) {


		System.out.println("Please enter the data type: ");
		System.out.println("1) Integer");
		System.out.println("2) Double");
		System.out.println("3) String");
		Scanner input1 = new Scanner(System.in);
		int DataType = input1.nextInt();

		System.out.println("How many elements:");
		Scanner input2 = new Scanner(System.in);
		int NumberOfElements = input1.nextInt();

		//initializing data structures
		int[] myArray1= new int[NumberOfElements];
		Stack myStack1= new Stack();
		PriorityQueue queue1= new PriorityQueue();
		Set set1= new LinkedHashSet();

		Double[] myArray2= new Double[NumberOfElements];
		Stack myStack2= new Stack();
		PriorityQueue queue2= new PriorityQueue();
		Set set2= new LinkedHashSet();

		String[] myArray3= new String[NumberOfElements];
		Stack myStack3= new Stack();
		PriorityQueue queue3= new PriorityQueue();
		Set set3= new LinkedHashSet();

		if(DataType==1){

			for(int i=0; i<myArray1.length; i++){
				//for an order listing
				System.out.println("Element Number "+i);
				Scanner input3 = new Scanner(System.in);
				int Element1 = input3.nextInt();
				myArray1[i]=Element1;

				//for reverse order listing
				myStack1.push(Element1);

				//for ascending order listing
				queue1.offer(Element1);

				//for non repetitive listing
				set1.add(Element1);
			}

		}
		else if(DataType==2){
			for(int i=0; i<myArray1.length; i++){
				//for an order listing
				System.out.println("Element Number "+i);
				Scanner input4 = new Scanner(System.in);
				double Element2 = input4.nextDouble();
				myArray2[i]=Element2;

				//for reverse order listing
				myStack2.push(Element2);

				//for ascending order listing
				queue2.offer(Element2);

				//for non repetitive listing
				set2.add(Element2);

			}

		}
		else if(DataType==3){
			for(int i=0; i<myArray3.length; i++){
				//for an order listing
				System.out.println("Element Number "+i);
				Scanner input5 = new Scanner(System.in);
				String Element3 = input5.nextLine();
				myArray3[i]=Element3;

				//for reverse order listing
				myStack3.push(Element3);

				//for ascending order listing
				queue3.offer(Element3);

				//for non repetitive listing
				set3.add(Element3);

			}

		}

		//displays results
		if(DataType==1){
			//showing integers
			System.out.println("The list of numbers entered in original order using Arrays: ");
			for(int number:myArray1){
				System.out.println(number);}

			System.out.println("The list of numbers entered in reverse order using Push and Pop Stacks: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(myStack1.pop());}

			System.out.println("The list of numbers entered in ascending order using Priority Queue: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(queue1.poll());}

			System.out.println("The list of numbers listed only once using a Linked Hash Set: ");
			for(int Show1: set1){
				System.out.println(Show1);}
		}
		//showing doubles
		else if(DataType==2){
			System.out.println("The list of doubles entered in original order using Arrays: ");
			for(double number:myArray2){
				System.out.println(number);}

			System.out.println("The list of doubles entered in reverse order using Push and Pop Stacks: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(myStack2.pop());}

			System.out.println("The list of doubles entered in ascending order using Priority Queue: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(queue2.poll());}

			System.out.println("The list of doubles listed only once using a Linked Hash Set: ");
			for(Double Show2: set2){
				System.out.println(Show2);}
		}
		//showing strings
		else if(DataType==3){
			System.out.println("The list of Strings entered in original order using Arrays: ");
			for(String number:myArray3){
				System.out.println(number);}

			System.out.println("The list of Strings entered in reverse order using Push and Pop Stacks: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(myStack3.pop());}

			System.out.println("The list of Strings entered in ascending order using Priority Queue: ");
			for( int i1=0; i1<NumberOfElements; i1++){
				System.out.println(queue3.poll());}

			System.out.println("The list of Strings listed only once using a Linked Hash Set: ");
			for(String Show3: set3){
System.out.println(Show3);}

screenshots:
Capture-300x208

Leave a Reply

Your email address will not be published. Required fields are marked *