Chapter 10 – Queue NCERT Solutions for Class 12 Computer Science (C++)


NCERT Solutions for Class 12 Computer Science (C++) Chapter 10 – Queue – Free PDF download

NCERT Solutions for Class 12 Computer Science

Chapter NameQueue
ChapterChapter 10
ClassClass 12
SubjectComputer Science (C++) NCERT Solutions
BoardCBSE
CategoriesCBSE NCERT Solutions


Long Answer Type Questions [4 marks each]


Question 1:
Define member function delque() to perform delete operation on a linked queue where each node has the following structure :

struct node  { char name[20] int marks;  node *link; }; class queue { node *front,‘rear;  public : queue() {front=rear=NULL; } void delque ( ); };    [CBSE Comptt., 2014]

Answer:

void queue : : delque () { if ( front != NULL) { node *Temp = front; cout << Temp -> name << Temp ->marks; front = front->link; delete Temp; if(front == NULL) rear = NULL; } else cout << "Queue is empty"; }  (4 marks for correct program)

Question 2:
Give the necessary declaration of linked’ implemented Queue containing players information (as defined in the following definition of Node). Also write a user defined function in C++ to delete one Player’s information from the Queue.
[CBSE Comptt., 2013]

struct node    { int Player No ; char PlayerName[20]; Node*Link; }

Answer:
NODE *QUEUEDEL(Node * front, int val, char val2[ ])

{ Node *temp; if (front ==NULL)    [1] cout<<"Queue EMPTY"; { else { temp=front ; temp®PlayerNo=val;    [1] strcpy (temp®PlayerName, val2);  front=front®Link;    [1] delete temp; } return (front); }  [1]

Question 3:
Write a function QDELETE ( ) in C++ to perform delete operation on a Linked Queue, which contains Passenger no and Passenger name. Consider the following definition of Node in the code,

struct node { long int Pno;  char Pname [20];  node *Link; };    [O.D, 2013]

Answer:
//Function to delete queue elements Node * QUEUE (Node * front, int val, char vail [])

{ Node *temp;  if (front == NULL)  cout <<"Queue Empty";  else  { temp = front;  temp®Pno=val; strcpy (temp®Pname, vail);  front = front®Link;  delete temp; } return (front); }    [4]

Question 4:
Write a function QINSERT() in C+ + to perform insert operation on a Linked Queue, which contains Client no and Client name. Consider the following definition of NODE in the code of . QINSERT ().    [Delhi, 2013]

struct Node { long int Cno; // Client No  char Cname [20]; // Client Name  Node *Next ; };

Answer:
Function to Insert element
Node * QINSERT (Node *rear, int val),

char val [] { Node *temp;  temp = new Node; temp®Cno = val;  strcpy (temp®Cname, val);  temp®NEXT=NULL;  rear®NEXT=temp;  rear=temp;  return (rear); }    [4]

Question 5:
Write a function in C++ to perform Insert operation in a circular Queue containing Layer’s information (represented with the help of an array of structure Player).    [CBSE SQP 2013]

struct Player { long PID;    //Player ID char Pname [20];}    //Player Name Player*Link; }

Answer:

void Insert ( ) { PLAYER *P = new PLAYER; cout <<"Enter Player ID & Name"; cin>>P→PID; gets (P→ Pname); P®Link=NULL; if ((fronts = NULL) && (rear == NULL)) { front = rear = P; } else { rear®Link = P;  rear = P; } }    [4]

Question 6:
Write a function in C++ to perform insert operation in a static circular queue containing book’s information (represented with the help of an array of structure BOOK).    [O.D, 2012]

struct BOOK { long Accno; //Book Accession Number char Title[20];    //Book Title };

Answer:

struct BOOK { long Accno; char Title [20] ;  int front, rear; }B [10] ;  void insert() { if (r e a r = = s i z e - l & & f r o n t = = 0||front== rear+1) {  cout<<"
 Circular queue is full"; return; } else if(rear==-l) { rear++;  front++; } else if(rear==size-1)  rear=0;  else  { rear++; } cout<<"Enter Title : ” ; cin>>B[rear] . Title; cout<<"Enter Accno : ” ;  cin>>B[rear] . Accno; }    [4]

Question 7:
Write a function in C++ to perform insert operation in a dynamic queue containing DVD’s information (represented with the help of an array of structure DVD). [Delhi, 2012]
Answer:
/*Function in C++ to perform insert in a dynamic queue is given as*/

struct DVD  { long No; // DVD Number  char Title[20]; // DVD Title  DVD *Link  }; void insert(struct DVD *start, char data[20] ) ; { DVD *q, *temp; // Dynamic memory has been allocated for a node temp=(DVD*)malloc(size of (DVD));  temp=Title[20]=data[20] ;  temp"Next=NULL; if (start    =    = NULL) /*Element inserted at end*/ while (q"Next ! = NULL) q=q.Next; q.Next = temp; }    [4]

Question 8:
Write the definition of a member function INSERT() for a class QUEUE in C++, to insert a CUSTOMER in a dynamically allocated Queue of items considering the following code which is already written as a part of the program,

struct CUSTOMER  { int CNO; char CNAME[20]; CUSTOMER *Link; }; Class QUEUE { CUSTOMER *R,*F; Public: QUEUE(){R=NULL;F=NULL;}  void INSERT();  void DELETE() -QUEUE(); };    [CBSE SQP 2013]

Answer:

void QUEUE : : INSERT () { CUSTOMER*T=New CUSTOMER; cin>>T>>; gets(T→CNAME); //OR cin>>T>>CNAME;  T → LINK = NULL;  if (R==NULL) { F=T; R=T; } else { R → LINK = T; R = T; } }

(1 Mark for correct a new code)
(1/2 Mark for entering data to new code)
(1/2Mark for assigning NULL to link of the new code)
(1/2 Mark for assigning front to the first code as L=T)
(1/2 Mark for linking the last node to new code as R→Link=T)
(1 Mark for assign Read to the new code as R=T)