Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------->> File Headers
- #ifndef HEADERS_H_INCLUDED
- #define HEADERS_H_INCLUDED
- #include <iostream>
- using namespace std;
- struct mahasiswa{
- string nama;
- int npm;
- };
- struct node{
- mahasiswa mhs;
- node *next;
- node *prev;
- };
- node *baru,*bantu,*awal=NULL,*akhir=NULL;
- bool cekAkhirNull(){
- return akhir == NULL;
- }
- bool cekAwalNull(){
- return awal==NULL;
- }
- #endif // HEADERS_H_INCLUDED
- //---------------------------------------------------------------->> End of File Headers
- //---------------------------------------------------------------->> main.cpp
- #include <iostream>
- #include <stdlib.h>
- #include "headers.h"
- using namespace std;
- void push(){
- baru = new node;
- baru->next = NULL;
- baru->prev = NULL;
- cout << "Masukkan nama : ";
- cin.sync();
- getline(cin,baru->mhs.nama);
- cout << "Masukkan NPM : ";
- cin.sync();
- cin >> baru->mhs.npm;
- if(cekAwalNull()){
- awal=akhir=baru;
- }else{
- akhir->next = baru;
- baru->prev = akhir;
- akhir = baru;
- }
- }
- void pop(){
- if(cekAkhirNull()){
- cout << "Data kosong" << endl;
- system("pause");
- }else{
- cout << "Data " << akhir->mhs.nama << " Telah dihapus " << endl;
- system("pause");
- if(akhir->prev == NULL){
- awal=akhir=NULL;
- }else{
- bantu = akhir;
- akhir = akhir->prev;
- akhir->next = NULL;
- delete bantu;
- }
- }
- }
- void view(){
- bantu = awal;
- while(bantu!=NULL){
- cout << "[" << bantu->mhs.nama << "," << bantu->mhs.npm << "] ";
- bantu = bantu->next;
- }
- }
- void tukar(){
- if(akhir->prev == awal){
- cout << "Data tertukar : ";
- bantu = akhir;
- akhir->next = awal;
- akhir->prev = NULL;
- awal->prev = akhir;
- awal->next = NULL;
- akhir = awal;
- awal = bantu;
- view();
- }else if(awal == akhir){
- cout << "Data hanya 1, tidak dapat di tukar " << endl;
- }else{
- cout << "Data tertukar : ";
- bantu = akhir->prev;
- bantu->prev->next = akhir;
- akhir->prev = bantu->prev;
- akhir->next = bantu;
- bantu->prev = akhir;
- bantu->next = NULL;
- akhir = bantu;
- view();
- }
- cout << endl;
- system("pause");
- }
- int main()
- {
- int menu;
- do{
- system("cls");
- view();
- cout << endl;
- cout << "Menu :" << endl;
- cout << "1. Push" << endl;
- cout << "2. Pop" << endl;
- cout << "3. Tukar data terakhir dengan terakhir-1" << endl;
- cout << "4. Keluar" << endl;
- cout << "Masukkan menu : ";
- cin >> menu;
- if(menu == 1){
- push();
- }else if(menu == 2){
- pop();
- }else if(menu == 3){
- tukar();
- }
- }while(menu != 4);
- }
- //---------------------------------------------------------------->> End of main.cpp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement