Senin, 08 Juni 2015

Struktur Data - Presentasi Project



===============================================
Penambahan dan Penghapusan Node di Tengah Pada Linked List
===============================================


# include <iostream.h>
# include <conio.h>
struct TNode{
char data[15];
TNode *next;
};
TNode *head;
int opsi = 0;
void init(){
head = NULL;
}
bool isEmpty(){
if (head ==NULL) return true;
else return false;
}
void tambahbelakang(){
TNode *baru,*bantu;
baru = new TNode;
cout << "Masukkan Data  : ";
cin >> baru-> data;
baru->next = NULL;
clrscr();
if(isEmpty()== true){
head=baru;
head->next = NULL;
} else {
bantu=head;
while(bantu->next!=NULL){
bantu=bantu->next;
}
bantu->next = baru;
}
}
void tambahtengah(){
TNode *baru, *bantu;
int posisiSisip;
if(isEmpty()== false){
cout<<"Data akan di sisipkan setelah data ke- : "; cin>>posisiSisip;
bantu=head;
baru=new TNode;
for(int i=1;i<posisiSisip;i++){
if(bantu->next!=NULL)
bantu=bantu->next;
else break;
}
cout << "Masukkan Data  : ";
cin >> baru-> data;
baru->next=bantu->next;
bantu->next=baru;
clrscr();
}
else cout<<"Data masih kosong, Tidak bisa tambah data dari tengah!";
}
void hapustengah(){
int banyakdata,posisiSisip,poshapus;
TNode *hapus, *bantu;
if(isEmpty()== false){
cout<<"Data akan dihapus adalah data ke- : "; cin>>posisiSisip;
banyakdata=1;
bantu=head;
while(bantu->next!=NULL)
{
bantu=bantu->next;
banyakdata++;
}
if((posisiSisip<1)||(posisiSisip>banyakdata)){
cout<<"Tidak ada data di posisi tersebut..";
}else {
bantu=head;
poshapus=1;
while(poshapus<(posisiSisip-1))
{
bantu=bantu->next;
poshapus++;
}
hapus=bantu->next;
bantu->next=hapus->next;
delete hapus;
clrscr();
}
}
else cout<<"Data Masih kosong, Tidak bisa hapus data dari tengah! ";
}
void display(){
clrscr();
TNode *bantu;
bantu = head;
if(isEmpty()==true){
cout<<"Data masih kosong, Silahkan masukkan data terlebih dahulu.";
} else {
cout<<endl<<"DATA LINKED LIST\n";
while(bantu!=NULL){
cout<<"--------------- "<<endl;
cout<<"DATA    : " << bantu->data << " ";
cout<<endl;
bantu=bantu->next;
cout<<"--------------- "<<endl;
}
cout<<endl;
}
}
void main(){
int();
do{
cout<<endl<<endl;
cout<<"==============================="<<endl;
cout<<" MENU PILIHAN:"   <<endl;
cout<<"==============================="<<endl;
cout<<endl;
cout<<"1. Tambah Data dari Awal."   <<endl;
cout<<"2. Tambah Data dari Tengah."   <<endl;
cout<<"3. Hapus Data dari Tengah."   <<endl;
cout<<"4. Tampil Data."   <<endl;
cout<<"5. Keluar."   <<endl;
cout<<endl;
cout<< "Pilihan Menu : ";
cin >> opsi;
switch(opsi){
case 1 : tambahbelakang();break;
case 2 : tambahtengah();break;
case 3 : hapustengah();break;
case 4 : display();break;
}
}while (opsi != 5);
}




===========================================
Name: Harsan Febrian
NIM: 12140650
Class 12.2C.11
===========================================

Tidak ada komentar:

Posting Komentar