Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct data{
- int nilai;
- data *next;
- };
- data *depan, *belakang, *tambah, *hapus, *bantu, *posisi;
- void tambahData(){
- tambah = new data;
- cout<<"Masukan Nilai = ";
- cin>>nilai;
- cin.ignore();
- tambah->nilai = nilai;
- tambah->next = NULL;
- }
- void tambahDepan(){
- if(depan==NULL){
- belakang = tambah;
- }
- else{
- tambah->next = depan;
- }
- depan = tambah;
- }
- void tambahBelakang(){
- if(belakang==NULL){
- depan = tambah;
- }
- else{
- belakang->next = tambah;
- }
- belakang = tambah;
- }
- void tambahTengah(){
- int i, kounter, letak ;
- cout<<"Posisi mana data ini akan ditaruh ";
- cin>>letak;
- posisi = depan;
- //menghitung banyak linked list
- while (posisi != NULL){
- posisi = posisi->next;
- kounter++;
- }
- //linked awal
- if (letak == 1){
- if (depan == NULL){
- depan = tambah;
- depan->next = NULL;
- }
- else{
- //menyimpan data depan di variable bantu
- bantu = depan;
- //meyimpan isi dari tambah ke depan
- depan = tambah;
- //memberikan akses dari variable depan ke variable bantu
- depan->next = bantu;
- }
- }
- //cek apakah letak berada dalam jangkauan linked list
- else if (letak > 1 && letak <= kounter){
- //menset posisi ke link awal
- posisi = depan;
- for (i = 1; i < letak; i++){
- //menyimpan variable posisi ke variable bantu
- bantu = posisi;
- //memberikan variable posisi ke link selanjutnya
- posisi = posisi->next;
- }
- //memberikan akses variable bantu ke variable tambah(baru)
- bantu->next = tambah;
- //memberikan akses variable (baru) ke variable
- tambah->next = posisi;
- }
- else{
- cout<<"Positon out of range"<<endl;
- }
- }
- void hapusTengah(){
- int i, kounter, letak ;
- cout<<"Masukan Posisi yg Ingin dihapus: ";
- cin>>letak;
- posisi = depan;
- while(posisi != NULL){
- posisi = posisi->next;
- kounter++;
- }
- if (letak> 0 && letak<= kounter){
- posisi = depan;
- for (i = 1;i < letak;i++){
- bantu = posisi;
- posisi = posisi->next;
- }
- bantu->next = posisi->next;
- posisi = NULL;
- }
- else{
- cout<<"Data yg ada hanya "<<kounter<<endl;
- }
- cout<<"Element Deleted"<<endl;
- }
- void hapusDataTengah(){
- int nilai;
- cout<<"Masukan Data yg ingin di hapus = ";
- cin>>ni;
- posisi = depan;
- while(posisi->nilai != nilai){
- bantu = posisi;
- posisi = posisi->next;
- }
- bantu->next = posisi->next;
- posisi = NULL;
- }
- void hapusDepan(){
- hapus = depan;
- depan = hapus->next;
- hapus = NULL;
- }
- void hapusBelakang(){
- posisi = depan;
- while(posisi != belakang){
- bantu = posisi;
- posisi = posisi->next;
- }
- posisi = NULL;
- belakang = bantu;
- }
- void tampil(){
- posisi = depan;
- char lihat;
- int lokasi=1;
- while(posisi!=NULL){
- system("CLS");
- cout<<"Data ke- "<<lokasi<<" : \n";
- cout<<"nilai = "<<posisi->nilai<<endl;
- if(posisi != belakang){
- cout<<"Ingin Lihat Data Selanjutnya [y/n] ? ";
- cin>>lihat;
- }
- else{
- cout<<"Data Habis"<<endl;
- }
- if(lihat == 'y'){
- posisi=posisi->next;//beralih ke data selanjutnya
- lokasi++;
- }
- else{
- break;
- }
- }
- }
- int main()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement