#include <QCoreApplication>
#include <stdio.h>
#include <iostream>
using namespace std;
struct tnode {
int info;
tnode *next;
};
tnode *head;
tnode *baru;
tnode *bantu;
tnode *hapus;
tnode *cari;
tnode *pencacah;
int main(){
//1. deklarasi
int databaru;
//Insert Kosong --> maka head baru
databaru =10;
baru = new tnode;
baru->info = databaru;
baru->next=NULL;
head=baru;
head->next = NULL;
//Insert di awal head
databaru = 9;
baru = new tnode;
baru->info = databaru;
baru->next = NULL;
baru->next = head;
head=baru;
//Insert di awal head
databaru = 2;
baru = new tnode;
baru->info = databaru;
baru->next = NULL;
baru->next = head;
head=baru;
//Insert di awal head
databaru = 23;
baru = new tnode;
baru->info = databaru;
baru->next = NULL;
baru->next = head;
head = baru;
//Insert di akhir
databaru = 7;
baru = new tnode;
baru->info = databaru;
baru->next = NULL;
bantu = head;
while (bantu->next != NULL ){
bantu = bantu->next;
}
bantu->next = baru;
//Insert di akhir
databaru = 3;
baru = new tnode;
baru->info = databaru;
baru->next = NULL;
bantu = head;
while (bantu->next != NULL ){
bantu = bantu->next;
}
bantu->next = baru;
//Menampilkan
cout << "\n (=======Keadaan awal==========) \n";
bantu = head;
while (bantu != NULL) {
cout << bantu->info << "\n";
bantu = bantu->next;
}
//Hapus Depan
hapus = head;
head = head->next;
delete hapus; //Menghapus dari memory
//Hapus Belakang --> tidak bisa melihat sebelumnya
bantu = head;
hapus = bantu;
while (bantu->next != NULL) {
bantu = bantu->next;
hapus = bantu;
}
hapus->next= NULL;
//Menampilkan
cout << "\n (========Setelah data awal dihapus=========) \n";
bantu = head;
while (bantu != NULL) {
cout << bantu->info << "\n";
bantu = bantu->next;
}
// Cari Data
bantu = head;
int pencacah =0;
int cari = 8;
while (bantu !=NULL){
if (cari ==( bantu->info )) {
break;
}
else{
cout << pencacah;
cout << bantu->info << "\n";
bantu = bantu->next;
pencacah +=1;
}}
cout << "data terakhir pada " <<pencacah;
cout << "\n";
return 0;
}