CS301 Assignment no 1
Here You can easily download CS301 Assignment Solution - Data Structures. CS301 Assignment No. 1 Semester: Fall 2016. CS301 Data Structures .CS301 Assignment Total Marks: 20. CS301 Assignment Due Date: November 16, 2016.CS301 Assignment Instructions
Please read the following instructions carefully before submitting assignment:
It should be clear that your assignment will not get any credit if:
It should be clear that your assignment will not get any credit if:
- Assignment is submitted after due date.
- Submitted assignment does not open or file is corrupt.
- Assignment is copied (From internet/ to from students).
Note: For clarity and simplicity, You are required to Upload/Submit only ONE .CPP file if needed.You May also Read: CS501 Assignment no. 01 Solution Fall 2016
Keep all your files (word and .cpp) in a folder and make its zipped file to upload on LMS.
Use ONLY Dev-C++ IDE for writing and executing your code.
CS301 Assignment Objectives:
The purpose of this assignment is to make you familiar with following topics:- Singly Linked List, Double Linked List and Circular Linked List
- Infix to Postfix
- C++ Templates
- Implementation of Stack
- Function Call Stack
You May also Read: CS402 Assignment No 01 Solution Fall 2016
CS301 Assignment Submission Instructions
You have to submit only word file on the Assignments interface of CS301 at VULMS. Assignment submitted inany other format will not be accepted and will be graded zero marks.
You May also Read: CS201 Assignment No 01 Solution / Discussion Fall 2016
CS301 Assignment no. 1 Fall 2016
You May also Read: ENG201 Assignment no. 1 Solution Fall 2016
CS301 Assignment Question 1:
marks: 10
CS301 Assignment no 1 Question no 1 Fall 2016 |
Given is a code of abstract class declaration for a list (ADT) in Figure 1(a).
Figure 1(a)
(a) Assume a list has the following configuration: < | 2, 23, 15, 5, 9 >Write only Method calls (Name of function) using the List ADT of Figure 1(a) to delete the element with value
15.
(a) Assume a list has the following configuration: < | 2, 23, 15, 5, 9 >Write only Method calls (Name of function) using the List ADT of Figure 1(a) to delete the element with value
15.
e.g To move the pointer to end of the list We will use function movetoEnd( ). No need to write function implementation.
Note: Here the ‘|’ symbol represents ‘fence’ like pointer that indicates the current position of pointer in list.
(b) Show the list configuration resulting from each series of list operations using the List ADT of Figure 1(a)
Note: Here the ‘|’ symbol represents ‘fence’ like pointer that indicates the current position of pointer in list.
(b) Show the list configuration resulting from each series of list operations using the List ADT of Figure 1(a)
Assume that list L1 is empty at the beginning of each series. Show where the fence is in the list.
L1.append(10);
L1.append(20);
L1.append(15);
L1.append(10);
L1.append(20);
L1.append(15);
CS301 Assignment Question 2:
marks: 10
Given is an infix expression:
A + B * C / (D-B)
Write a complete program in C++ to convert the above infix expression into postfix notation.
Given is an infix expression:
A + B * C / (D-B)
Write a complete program in C++ to convert the above infix expression into postfix notation.
CS301 Assignment Deadline:
Your CS301 Assignment must be uploaded on or before November 16, 2016. We shall not accept your solution through email after the due date.CS301 Assignment no 1 Solution Fall 2016
CS301 Solution Correct
CS301 Assignment Question no. 1 Solution:
#includeusing namespace std;
struct node
{
int data;
struct node *next;
};
class stack
{
struct node *top;
public:
stack()
{
top=NULL;
}
void push();
void pop();
void show();
};
void stack::push()
{
int value;
struct node *ptr;
cout"Enter Item number to insert : ";
cin>>value;
ptr=new node;
ptr->data=value;
ptr->next=NULL;
if(top!=NULL)
ptr->next=top;
top=ptr;
cout"\n New item is inserted to the stack!!!";
}
void stack::pop()
{
struct node *temp;
if(top==NULL)
{
cout"\n The stack is empty!!!";
}
temp=top;
top=top->next;
cout"\n Remove Item \n ============ \n Item number " temp->data;
cout" is removed";
delete temp;
}
void stack::show()
{
struct node *ptr1=top;
cout"\n Pruchased Items are :\n";
while(ptr1!=NULL)
{
coutptr1->data" ->";
ptr1=ptr1->next;
}
cout"NULLn";
}
int main()
{
stack s;
int choice;
while(1)
{
cout"\n-------------- *Zohaib* -----------------\n------------- khan--------------------";
cout"\n------------- bc130201551---------------\n------------- Student Of BsCs----------------";
cout"\n ------------ Purchased Module -------------------------";
cout"\n MENU\n ====\n1:Insert Item\n2:Remove Item\n3:DISPLAY Purchased Item \n4:EXIT";
cout"\n Enter your choice(1-4): ";
cin>>choice;
switch(choice)
{
case 1:
s.push();
break;
case 2:
s.pop();
break;
case 3:
s.show();
break;
case 4:
return 0;
break;
default:
cout"Please enter correct choice(1-4)!!";
break;
}
}
return 0;
}
CS301 Assignment Question no. 2 Solution:
#include#include
#include
#include
using namespace std;
string infixToPostfix(string expr); //Function declaration
int precendence(char arg);
bool isoperand(char arg);
bool isoperator(char arg);
int operatorweight(char arg);
bool highprecendence(char a, char b);
int main()
{
string exp;//Variable to get input expression
cout"Enter the infix expression:";
getline(cin,exp);
cout"Output Postfix Expression:"infixToPostfix(exp);
getch();
}
string infixToPostfix(string expr)//Function to perform all conversion operation
{
stack
string postfix = "";//Initialize the output string as empty;
for(int i = 0;i < expr.length(); i++)//Scan the infix string one by one
if(expr[i] == '(')
{
stk.push(expr[i]);
}
else if(expr[i] == ')')
{
while(stk.top() != '(')
{
postfix = postfix + stk.top();
stk.pop();
}
stk.pop();
}
else if(isoperand(expr[i]))
{
postfix += expr[i];
}
else if(isoperator(expr[i]))
{
while(!stk.empty()&& !highprecendence(expr[i],stk.top()))
{
postfix+= stk.top();
stk.pop();
}
stk.push(expr[i]);
}
while(!stk.empty())
{
postfix+= stk.top();
stk.pop();
}
return postfix;
}
bool highprecendence(char a, char b)//Check for operator precendence
{
int weighta = operatorweight(a);
int weightb = operatorweight(b);
if(weighta >= weightb) return 1;
return 0;
}
bool isoperator(char arg)//Check weather the character is operator
{
if(arg == '*' || arg == '/' || arg == '+' || arg == '-') return(1);
else return(0);
}
bool isoperand(char arg)//Check weather the character is operand
{
if(arg >= '0' && arg <= '9') return 1;
if(arg >= 'a' && arg <= 'z') return 1;
if(arg >= 'A' && arg <= 'Z') return 1;
return 0;
}
int operatorweight(char arg)//Add weight to the operator
{
int weight = 0;
switch(arg)
{
case '*':
case '/':
weight = 2;
break;
case '+':
case '-':
weight = 1;
break;
}
return(weight);
}
Download Links for CS301 Assignment Files:
Untitled4.cpp, 2 KBUntitled4.exe, 1.9 MB
cs301 assignment no 1 ka question no 1 ka solution hai to pllllllzzzz request hai dy dyn muje plzzz
ReplyDeletecs301 Assignment Question no. 1 solution has been Updated.
DeletePlease upload solution of question no. 1
ReplyDeletecs301 Assignment Question no. 1 solution has been Updated.
Delete