Upload files to "DS/C/Lab/Week9"
This commit is contained in:
parent
3da1635a88
commit
972d35034c
123
DS/C/Lab/Week9/CircularPolyAdd.c
Normal file
123
DS/C/Lab/Week9/CircularPolyAdd.c
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct Node {
|
||||||
|
int coefficient;
|
||||||
|
int exponent;
|
||||||
|
struct Node *next;
|
||||||
|
struct Node *prev;
|
||||||
|
} Node;
|
||||||
|
|
||||||
|
Node *createNode(int coefficient, int exponent) {
|
||||||
|
Node *newNode = (Node *)malloc(sizeof(Node));
|
||||||
|
if (newNode == NULL) {
|
||||||
|
printf("Memory allocation failed.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
newNode->coefficient =coefficient;
|
||||||
|
newNode->exponent = exponent;
|
||||||
|
newNode->next = NULL;
|
||||||
|
newNode->prev = NULL;
|
||||||
|
return newNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void insertEnd(Node **head, int coefficient, int exponent) {
|
||||||
|
Node *newNode = createNode(coefficient, exponent);
|
||||||
|
if (*head == NULL) {
|
||||||
|
*head = newNode;
|
||||||
|
(*head)->next = *head;
|
||||||
|
(*head)->prev = *head;
|
||||||
|
} else {
|
||||||
|
Node *last = (*head)->prev;
|
||||||
|
newNode->next = *head;
|
||||||
|
newNode->prev = last;
|
||||||
|
last->next = newNode;
|
||||||
|
(*head)->prev = newNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Node *addPolynomials(Node *poly1, Node *poly2) {
|
||||||
|
if (poly1 == NULL) return poly2;
|
||||||
|
if (poly2 == NULL) return poly1;
|
||||||
|
|
||||||
|
Node *result = NULL;
|
||||||
|
Node *temp1 = poly1, *temp2 = poly2;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (temp1->exponent > temp2->exponent) {
|
||||||
|
insertEnd(&result, temp1->coefficient, temp1->exponent);
|
||||||
|
temp1 = temp1->next;
|
||||||
|
} else if (temp1->exponent < temp2->exponent) {
|
||||||
|
insertEnd(&result, temp2->coefficient, temp2->exponent);
|
||||||
|
temp2 = temp2->next;
|
||||||
|
} else {
|
||||||
|
int sum = temp1->coefficient + temp2->coefficient;
|
||||||
|
if (sum != 0) {
|
||||||
|
insertEnd(&result, sum, temp1->exponent);
|
||||||
|
}
|
||||||
|
temp1 = temp1->next;
|
||||||
|
temp2 = temp2->next;
|
||||||
|
}
|
||||||
|
} while (temp1 != poly1 || temp2 != poly2);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void displayPolynomial(Node *head) {
|
||||||
|
if (head == NULL) {
|
||||||
|
printf("Empty polynomial.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Node *temp = head;
|
||||||
|
do {
|
||||||
|
printf("(%dx^%d) ", temp->coefficient, temp->exponent);
|
||||||
|
temp = temp->next;
|
||||||
|
if (temp != head) {
|
||||||
|
printf("+ ");
|
||||||
|
}
|
||||||
|
} while (temp != head);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void insert(Node** poly, int coef, int exp) {
|
||||||
|
Node* temp = (Node*) malloc(sizeof(Node));
|
||||||
|
temp->coefficient = coef;
|
||||||
|
temp->exponent = exp;
|
||||||
|
temp->next = NULL;
|
||||||
|
|
||||||
|
if (*poly == NULL) { *poly = temp; return; }
|
||||||
|
|
||||||
|
Node* current = *poly;
|
||||||
|
|
||||||
|
while (current->next != NULL) current = current->next;
|
||||||
|
|
||||||
|
current->next = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Node *poly1 = NULL, *poly2 = NULL;
|
||||||
|
|
||||||
|
insertEnd(&poly1, 5, 3); // 5x^3
|
||||||
|
insertEnd(&poly1, 4, 1); // 4x^1
|
||||||
|
insertEnd(&poly1, 3, 0); // 3x^0
|
||||||
|
|
||||||
|
insertEnd(&poly2, 3, 2); // 3x^2
|
||||||
|
insertEnd(&poly2, 2, 1); // 2x^1
|
||||||
|
insertEnd(&poly2, 1, 0); // 1x^0
|
||||||
|
|
||||||
|
printf("First polynomial: ");
|
||||||
|
displayPolynomial(poly1);
|
||||||
|
|
||||||
|
printf("Second polynomial: ");
|
||||||
|
displayPolynomial(poly2);
|
||||||
|
|
||||||
|
Node *sum = addPolynomials(poly1, poly2);
|
||||||
|
|
||||||
|
printf("Sum of the polynomials: ");
|
||||||
|
displayPolynomial(sum);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
115
DS/C/Lab/Week9/Doubly_Circular_LL.c
Normal file
115
DS/C/Lab/Week9/Doubly_Circular_LL.c
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct cnode *cnptr;
|
||||||
|
typedef struct cnode
|
||||||
|
{
|
||||||
|
int data;
|
||||||
|
cnptr next;
|
||||||
|
cnptr prev;
|
||||||
|
}cnode;
|
||||||
|
cnptr last=NULL;
|
||||||
|
|
||||||
|
cnptr createCnode(int val)
|
||||||
|
{
|
||||||
|
cnptr temp=(cnptr)malloc(sizeof(cnode));
|
||||||
|
temp->data=val;
|
||||||
|
temp->next=NULL;
|
||||||
|
temp->prev=NULL;
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
void insertBegin(int val)
|
||||||
|
{
|
||||||
|
cnptr temp=createCnode(val);
|
||||||
|
if(last==NULL)
|
||||||
|
{
|
||||||
|
last=temp;
|
||||||
|
last->next=last;
|
||||||
|
last->prev=last;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
temp->next=last->next;//head
|
||||||
|
last->next->prev=temp;
|
||||||
|
temp->prev=last;
|
||||||
|
last->next=temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void deleteend()
|
||||||
|
{
|
||||||
|
cnptr current;
|
||||||
|
if(last==NULL)
|
||||||
|
{
|
||||||
|
printf("List is empty");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cnptr previous=last->prev;
|
||||||
|
previous->next=last->next;
|
||||||
|
last->next->prev=previous;
|
||||||
|
free(last);
|
||||||
|
last=previous;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void revtraverse()
|
||||||
|
{
|
||||||
|
cnptr current=last;
|
||||||
|
printf("%d ",current->data);
|
||||||
|
current=current->prev;
|
||||||
|
while(current!=last)
|
||||||
|
{
|
||||||
|
printf("%d ",current->data);
|
||||||
|
current=current->prev;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
void traverse()
|
||||||
|
{
|
||||||
|
cnptr current=last;
|
||||||
|
current=current->next;
|
||||||
|
while(current!=last)
|
||||||
|
{
|
||||||
|
printf("%d ",current->data);
|
||||||
|
current=current->next;
|
||||||
|
}
|
||||||
|
printf("%d\n",current->data);
|
||||||
|
}
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char contin='y';
|
||||||
|
int choice;
|
||||||
|
while(contin=='y')
|
||||||
|
{
|
||||||
|
printf("What do you want to do? \n 1. For inserting at beginning \n 2. For deleting at the end. \n 3. For traversing the doubly LL\n");
|
||||||
|
scanf("%d",&choice);
|
||||||
|
switch(choice)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
int val;
|
||||||
|
printf("Enter the value\n");
|
||||||
|
scanf("%d",&val);
|
||||||
|
insertBegin(val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
deleteend();
|
||||||
|
printf("Element deleted\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
printf("elements of the list are\n");
|
||||||
|
traverse();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("continue?(y/n)\n");
|
||||||
|
fflush(stdin);
|
||||||
|
scanf("%c",&contin);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
121
DS/C/Lab/Week9/MultiPoly.c
Normal file
121
DS/C/Lab/Week9/MultiPoly.c
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
// Structure to represent a term in a polynomial
|
||||||
|
typedef struct Node {
|
||||||
|
int coeff;
|
||||||
|
int power;
|
||||||
|
struct Node* next;
|
||||||
|
struct Node* prev;
|
||||||
|
} Node;
|
||||||
|
|
||||||
|
Node* createNode(int coeff, int power) {
|
||||||
|
Node* newNode = (Node*)malloc(sizeof(Node));
|
||||||
|
newNode->coeff = coeff;
|
||||||
|
newNode->power = power;
|
||||||
|
newNode->next = NULL;
|
||||||
|
newNode->prev = NULL;
|
||||||
|
return newNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
Node* insertTerm(Node* head, int coeff, int power) {
|
||||||
|
Node* temp = createNode(coeff, power);
|
||||||
|
if (head == NULL) {
|
||||||
|
head = temp;
|
||||||
|
head->next = head;
|
||||||
|
head->prev = head;
|
||||||
|
} else {
|
||||||
|
Node* last = head->prev;
|
||||||
|
temp->next = head;
|
||||||
|
temp->prev = last;
|
||||||
|
last->next = temp;
|
||||||
|
head->prev = temp;
|
||||||
|
}
|
||||||
|
return head;
|
||||||
|
}
|
||||||
|
|
||||||
|
void displayPolynomial(Node* head) {
|
||||||
|
if (head == NULL) {
|
||||||
|
printf("Polynomial is empty\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Node* temp = head;
|
||||||
|
do {
|
||||||
|
printf("%dx^%d ", temp->coeff, temp->power);
|
||||||
|
temp = temp->next;
|
||||||
|
if (temp != head) {
|
||||||
|
printf("+ ");
|
||||||
|
}
|
||||||
|
} while (temp != head);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
Node* multiplyPolynomials(Node* poly1, Node* poly2) {
|
||||||
|
if (poly1 == NULL || poly2 == NULL) {
|
||||||
|
printf("One of the polynomials is empty\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Node* result = NULL;
|
||||||
|
Node* temp1 = poly1;
|
||||||
|
|
||||||
|
do {
|
||||||
|
Node* temp2 = poly2;
|
||||||
|
do {
|
||||||
|
int coeff = temp1->coeff * temp2->coeff;
|
||||||
|
int power = temp1->power + temp2->power;
|
||||||
|
result = insertTerm(result, coeff, power);
|
||||||
|
temp2 = temp2->next;
|
||||||
|
} while (temp2 != poly2);
|
||||||
|
temp1 = temp1->next;
|
||||||
|
} while (temp1 != poly1);
|
||||||
|
|
||||||
|
Node* current = result;
|
||||||
|
do {
|
||||||
|
Node* next = current->next;
|
||||||
|
while (next != result) {
|
||||||
|
if (current->power == next->power) {
|
||||||
|
current->coeff += next->coeff;
|
||||||
|
Node* temp = next;
|
||||||
|
next->prev->next = next->next;
|
||||||
|
next->next->prev = next->prev;
|
||||||
|
next = next->next;
|
||||||
|
free(temp);
|
||||||
|
} else {
|
||||||
|
next = next->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
current = current->next;
|
||||||
|
} while (current != result);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
Node* poly1 = NULL;
|
||||||
|
Node* poly2 = NULL;
|
||||||
|
Node* result = NULL;
|
||||||
|
|
||||||
|
// Example: Polynomial 1: 5x^2 + 2x + 10, Polynomial 2: 2x^1 + 4
|
||||||
|
poly1 = insertTerm(poly1, 5, 2);
|
||||||
|
poly1 = insertTerm(poly1, 2, 1);
|
||||||
|
poly1 = insertTerm(poly1, 10, 0);
|
||||||
|
|
||||||
|
poly2 = insertTerm(poly2, 2, 1);
|
||||||
|
poly2 = insertTerm(poly2, 4, 0);
|
||||||
|
|
||||||
|
printf("Polynomial 1: ");
|
||||||
|
displayPolynomial(poly1);
|
||||||
|
|
||||||
|
printf("Polynomial 2: ");
|
||||||
|
displayPolynomial(poly2);
|
||||||
|
|
||||||
|
result = multiplyPolynomials(poly1, poly2);
|
||||||
|
|
||||||
|
printf("Result of Multiplication: ");
|
||||||
|
displayPolynomial(result);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
165
DS/C/Lab/Week9/PolyAdder.c
Normal file
165
DS/C/Lab/Week9/PolyAdder.c
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct pnode* pptr;
|
||||||
|
typedef struct pnode
|
||||||
|
{
|
||||||
|
int coeff;
|
||||||
|
int expo;
|
||||||
|
pptr next;
|
||||||
|
} pnode;
|
||||||
|
|
||||||
|
// create node in the linked list
|
||||||
|
pptr createNode(int coeff,int expo)
|
||||||
|
{
|
||||||
|
pptr temp = (pptr)malloc(sizeof(pnode));
|
||||||
|
if (temp == NULL)
|
||||||
|
{
|
||||||
|
printf("Heap is full");
|
||||||
|
free(temp);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
temp->coeff = coeff;
|
||||||
|
temp->expo = expo;
|
||||||
|
temp->next = NULL;
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
//insert element at the end of the linked list
|
||||||
|
void insertEnd(int coeff,int expo,pptr* head)
|
||||||
|
{
|
||||||
|
pptr temp = createNode(coeff,expo);
|
||||||
|
if(*head == NULL)
|
||||||
|
{
|
||||||
|
*head = temp;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pptr current = *head;
|
||||||
|
while(current->next)
|
||||||
|
{
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
current->next = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void attach(int coeff,int expo,pptr* rear)//we do *rear as we pdate the rear and ,=move it forword otherwise we didi not need to change it if only rear ke aage add karna hota
|
||||||
|
{
|
||||||
|
pptr temp;
|
||||||
|
temp = (pptr)malloc(sizeof(pnode));
|
||||||
|
temp->coeff = coeff;
|
||||||
|
temp->expo = expo;
|
||||||
|
temp->next = NULL;
|
||||||
|
|
||||||
|
(*rear)->next = temp;
|
||||||
|
*rear = temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
pptr polyAdd(pptr A,pptr B)
|
||||||
|
{
|
||||||
|
pptr C,rear,temp;
|
||||||
|
rear = (pptr)malloc(sizeof(pnode));
|
||||||
|
C = rear;
|
||||||
|
while(A && B)
|
||||||
|
{
|
||||||
|
int diff = A->expo - B->expo;
|
||||||
|
|
||||||
|
//A->expo < B->expo
|
||||||
|
if(diff<0)
|
||||||
|
{
|
||||||
|
attach(B->coeff,B->expo,&rear);
|
||||||
|
B = B->next;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//A->expo > B->expo
|
||||||
|
else if(diff>0)
|
||||||
|
{
|
||||||
|
attach(A->coeff,A->expo,&rear);
|
||||||
|
A = A->next;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//A->expo = B->expo
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int sum = A->coeff + B->coeff;
|
||||||
|
if(sum)
|
||||||
|
{
|
||||||
|
attach(sum,A->expo,&rear);
|
||||||
|
}
|
||||||
|
A = A->next;
|
||||||
|
B = B->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//attach remaining nodes for A and B
|
||||||
|
for(;A;A = A->next)
|
||||||
|
{
|
||||||
|
attach(A->coeff,A->expo,&rear);
|
||||||
|
}
|
||||||
|
for(;B;B=B->next)
|
||||||
|
{
|
||||||
|
attach(B->coeff,B->expo,&rear);
|
||||||
|
}
|
||||||
|
|
||||||
|
temp = C;
|
||||||
|
C = C->next;
|
||||||
|
free(temp);
|
||||||
|
return C;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
pptr A, B;
|
||||||
|
A = B = NULL;
|
||||||
|
|
||||||
|
insertEnd(3, 3, &A);
|
||||||
|
insertEnd(4, 2, &A);
|
||||||
|
insertEnd(1, 0, &A);
|
||||||
|
|
||||||
|
pptr current = A;
|
||||||
|
printf("1st Polynomial is: ");
|
||||||
|
if (current) {
|
||||||
|
printf("%dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
while (current) {
|
||||||
|
printf(" + %dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
insertEnd(6, 4, &B);
|
||||||
|
insertEnd(5, 2, &B);
|
||||||
|
insertEnd(4, 1, &B);
|
||||||
|
|
||||||
|
current = B;
|
||||||
|
printf("2nd Polynomial is: ");
|
||||||
|
if (current) {
|
||||||
|
printf("%dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
while (current) {
|
||||||
|
printf(" + %dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
pptr C = polyAdd(A, B);
|
||||||
|
current = C;
|
||||||
|
printf("Added Polynomial is: ");
|
||||||
|
if (current) {
|
||||||
|
printf("%dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
while (current) {
|
||||||
|
printf(" + %dx^%d", current->coeff, current->expo);
|
||||||
|
current = current->next;
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
120
DS/C/Lab/Week9/WashingMachine.c
Normal file
120
DS/C/Lab/Week9/WashingMachine.c
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
typedef struct cnode *cnptr;
|
||||||
|
typedef struct cnode
|
||||||
|
{
|
||||||
|
int data;
|
||||||
|
char name[100];
|
||||||
|
cnptr next;
|
||||||
|
cnptr prev;
|
||||||
|
} cnode;
|
||||||
|
|
||||||
|
cnptr last = NULL;
|
||||||
|
|
||||||
|
cnptr createCnode(int val)
|
||||||
|
{
|
||||||
|
cnptr temp = (cnptr)malloc(sizeof(cnode));
|
||||||
|
temp->data = val;
|
||||||
|
temp->next = NULL;
|
||||||
|
temp->prev = NULL;
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
|
||||||
|
void insertBegin(int val, char nam[])
|
||||||
|
{
|
||||||
|
cnptr temp = createCnode(val);
|
||||||
|
strcpy(temp->name, nam);
|
||||||
|
if (last == NULL)
|
||||||
|
{
|
||||||
|
last = temp;
|
||||||
|
last->next = last;
|
||||||
|
last->prev = last;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
temp->next = last->next; // head
|
||||||
|
last->next->prev = temp;
|
||||||
|
temp->prev = last;
|
||||||
|
last->next = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void deleteend()
|
||||||
|
{
|
||||||
|
if (last == NULL)
|
||||||
|
{
|
||||||
|
printf("Queue is empty\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Next person is %s for %d mins\n", last->name, last->data);
|
||||||
|
cnptr previous = last->prev;
|
||||||
|
previous->next = last->next;
|
||||||
|
last->next->prev = previous;
|
||||||
|
free(last);
|
||||||
|
last = previous;
|
||||||
|
|
||||||
|
if (last->next == last) // If the list becomes empty
|
||||||
|
last = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void traverse()
|
||||||
|
{
|
||||||
|
if (last == NULL) {
|
||||||
|
printf("Queue is empty\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cnptr current = last->next;
|
||||||
|
do {
|
||||||
|
printf("%s (%d mins) ", current->name, current->data); // Print name AND time
|
||||||
|
current = current->next;
|
||||||
|
} while (current != last->next);
|
||||||
|
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
char contin = 'y';
|
||||||
|
int choice;
|
||||||
|
while (contin == 'y')
|
||||||
|
{
|
||||||
|
printf("What do you want to do? \n 1. Add person to queue \n 2. Pass the chance to next person \n 3. View the Queue\n");
|
||||||
|
scanf("%d", &choice);
|
||||||
|
switch (choice)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
int val;
|
||||||
|
printf("Enter the name:\n");
|
||||||
|
fflush(stdin);
|
||||||
|
char name[100];
|
||||||
|
gets(name);
|
||||||
|
printf("Enter the time in minutes: \n");
|
||||||
|
scanf("%d", &val);
|
||||||
|
insertBegin(val, name);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
deleteend();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
printf("People in the Queue are\n");
|
||||||
|
traverse();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("continue? (y/n)\n");
|
||||||
|
fflush(stdin);
|
||||||
|
scanf(" %c", &contin);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user