#include<iostream> #include<iomanip> #include<string> using namespace std; struct node { int roll; int link; int score; string name; }; void traverse(); //void search(); void insert(); //void del(); node abc[50]; int start = -1; int avail = 0; main() { int choice; for(int i=0; i<49; i++) abc[i].link = i+1; abc[49].link = -1; do { cout<<"\nPress\n1. Insertion\n2. Traversing\n3. Searching\n4. Delete: "; cin>>choice; switch(choice) { case 1: insert(); break; case 2: traverse(); break; //case 3: search(); break; //case 4: del(); break; default: cout<<"\nInvalid Input"<<endl; } }while(1); system("pause"); } void insert() { int item1, item2; string s1; if(avail == -1) { cout<<"Overflow!"<<endl; return; } cout<<"Enter Roll Number: "; cin>>item1; cout<<"Enter Score: "; cin>>item2; cout<<"Enter student name: "; getline(cin, s1); //insertion at the beginning if(start == -1 || s1<abc[start].name) { int newnode = avail; avail = abc[avail].link; abc[newnode].roll = item1; abc[newnode].score = item2; abc[newnode].name = s1; abc[newnode].link = start; start = newnode; return; } //insertion somewhere in the mid int prev = start; for(int i = abc[start].link; i!=-1; i = abc[i].link) { if(s1<abc[i].name) { int newnode = avail; avail = abc[avail].link; abc[newnode].roll = item1; abc[newnode].score = item2; abc[newnode].name = s1; abc[newnode].link = i; abc[prev].link = newnode; return; } else prev = i; } //insertion at the end int newnode= avail; avail = abc[avail].link; abc[newnode].roll = item1; abc[newnode].score = item2; abc[newnode].name = s1; abc[newnode].link = -1; abc[prev].link = newnode; return; } void traverse() { if(start ==-1) { cout<<"\nList Empty"<<endl; return; } cout<<"Student Name"<<setw(20)<<"Roll No."<<setw(20)<<"Score\n"; for(int i = start; i!=-1; i=abc[i].link) { cout<<setw(12)<<abc[i].name; cout<<setw(20)<<abc[i].roll; cout<<setw(20)<<abc[i].score; cout<<"\n"; } }
C++
std::list
std::sort
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)