#include
using namespace std;
struct node{
string nama;
int usia;
node *next;
//menunjuk ke node lain
};
node *str_ptr=NULL;
//karena masih awal pointer awal menunjuk NULL
node *current;
void enqueue()
{
node *temp,*temp2;
temp= new node;
cout<<"Nama: ";cin>>temp->nama;
cout<<"Usia: ";cin>>temp->usia;
if (str_ptr==NULL)
{
str_ptr=temp;
temp->next=NULL;
}
else
{
temp2 = str_ptr;
str_ptr=temp;
str_ptr->next=temp2;
}
current=str_ptr;
}
void dequeue(){
//menghapus data pada node terakhir
node *temp1,*temp2;
if(str_ptr==NULL){
cout << "List kosong!!\n";
}else{
temp1=str_ptr;
for(;temp1->next!=NULL;){
temp2=temp1;
temp1=temp1->next;
}
delete temp1;
temp2->next=NULL;
}
node *temp;
temp=str_ptr;
for(;temp!=NULL;){
cout << "Nama : " << temp->nama << "\n";
cout << "Usia : " << temp->usia << "\n";
temp=temp->next;
}
}
void clear(){
node *temp;
for(;str_ptr!=NULL;){
temp=str_ptr;
str_ptr=str_ptr->next;
delete temp;
}
}
void tampil(){
node *temp;
temp=str_ptr;
for(;temp!=NULL;){
cout << "Nama : " << temp->nama << "\n";
cout << "Usia : " << temp->usia << "\n";
temp=temp->next;
}
//if(temp==NULL){
//cout << "Akhir Stack!!\n";
//}
}
int main(){
int i;
for(;i!=1;){
cout << "1. Exit\n";
cout << "2. Enqueue\n";
cout << "3. Dequeue\n";
cout << "4. Clear\n";
cout << "5. Tampil\n";
cout << "Menu Operasi Lists: ";
cin >> i;
if(i<=5){
switch (i){
case 2 : enqueue();break;
case 3 : dequeue();break;
case 4 : clear();break;
case 5 : tampil();break;
}
}else{
cout << "Pilih Opsi dengan benar!!\n";
}
}
}
0 comments:
Posting Komentar