Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Singly linked list - Queue implementation */
- #include<iostream>
- #include<cstdio>
- #include<cstdlib>
- #include<cstring>
- using namespace std;
- void push(int x);
- void pop();
- void search(int y);
- int nodeCounter=1;
- typedef struct alvi
- {
- int data;
- struct alvi *next;
- } node;
- node *head = NULL;
- node *tail = NULL;
- int main(void)
- {
- int choice;
- while(1)
- {
- printf("Choose 1 for PUSH , 2 for pop , 3 for search , 4 for quit. \t Select : ");
- scanf("%d",&choice);
- switch(choice)
- {
- case 1:
- int number;
- printf("Enter number to push : ");
- scanf("%d",&number);
- push(number);
- break;
- case 2:
- pop();
- break;
- case 3:
- int find;
- printf("Enter number to search : ");
- scanf("%d",&find);
- search(find);
- break;
- case 4:
- return 0;
- break;
- default:
- printf("Wrong Selection. Choose correct number \n");
- break;
- }
- }
- return 0;
- }
- void push(int x)
- {
- node *newNode = new node();
- newNode->data=x;
- newNode->next=NULL;
- if(head==NULL&&tail==NULL)
- {
- head=newNode;
- tail=newNode;
- printf("[INITIAL] Node %d pushed \n",nodeCounter);
- nodeCounter++;
- }
- else
- {
- tail->next=newNode;
- tail=newNode;
- printf("[INITIAL] Node %d pushed \n",nodeCounter);
- nodeCounter++;
- }
- printf("\n");
- }
- void pop()
- {
- node *cursor;
- cursor=head;
- while(cursor!=NULL)
- {
- printf("%d ",cursor->data);
- cursor=cursor->next;
- }
- printf("\n");
- }
- void search(int y)
- {
- int termCounter=1;
- int flag=0;
- node *pointer;
- pointer=head;
- while(pointer!=NULL)
- {
- if(pointer->data==y)
- {
- flag=1;
- printf("Found.\t");
- printf("Element number : %d (Pop serial)/(Push Serial) \n",termCounter);
- break;
- }
- pointer=pointer->next;
- termCounter++;
- }
- if(flag==0)
- {
- printf("not found \n");
- }
- printf("\n");
- }
Add Comment
Please, Sign In to add comment