#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
void push(){
//menambah data dan node di akhir
node *temp1,*temp2;
temp1=new node;
//menunjuk node awal yang ditunjuk temp1
cout << "Nama: "; cin >> temp1->nama;
cout << "Usia: "; cin >> temp1->usia;
temp1->next=NULL;
if(str_ptr==NULL){
str_ptr=temp1;
}else{
temp2=str_ptr;
//temp2=temp1
for(;temp2->next!=NULL;){
//sampai ketemu sebelum NULL baru node terisi
temp2=temp2->next;
}
temp2->next=temp1;
//temp2 diletakkan pada node terakhir
}
}
void pop()
{
node *temp1,*temp2;
if (str_ptr==NULL){
cout<<"List kosong!"<<endl;
}else{
temp1=str_ptr;
for (;temp1->next!=NULL;){
temp2=temp1;
temp1=temp1->next;
}
delete temp1;
temp2->next=NULL;
}
node *temp;
temp=str_ptr;
}
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. Pop\n";
cout << "3. Push\n";
cout << "4. Clear\n";
cout << "5. Tampil\n";
cout << "Menu Operasi Lists: ";
cin >> i;
if(i<=5){
switch (i){
case 2 : pop();break;
case 3 : push();break;
case 4 : clear();break;
case 5 : tampil();break;
}
}else{
cout << "Pilih Opsi dengan benar!!\n";
}
}
}
0 comments:
Posting Komentar