double linked list non circullar


#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
struct node{
struct node *previous;
int info;
struct node *next;
};
typedef struct node *simpul;

void main()
{
simpul baru, awal=NULL, akhir=NULL, temp;
int pilih;

do
{
cout("MENU\n");
cout("1. Isi depan\n");
cout("2. tampil\n");
cout("3. cari\n");
cout("4. hapus Depan\n");
cout("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
cout("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL;
baru->previous = NULL;
if (awal == NULL)
{
awal = baru;
akhir = baru;
}
else
{
baru->next = awal;
awal->previous = baru;
awal = baru;
}
break;
case 2:
clrscr();
cout("Dari AWAL\n");
temp = awal;
while(temp!=NULL)
{
cout("%i ", temp->info);
temp = temp->next;
}
cout("\nDari AKHIR\n");
temp = akhir;
while(temp!=NULL)
{
cout("%i ", temp->info);
temp = temp->previous;
}
cout("\n");
break;
case 3:
clrscr();
int cari;
cout("Cari Angka: ");
scanf("%i", &cari);
temp = awal;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
cout("Data Ditemukan");
else
cout("Data Tidak Ditemukan");
cout("\n");
break;
case 4:
clrscr();
temp = awal;
awal = awal->next;
if (awal != NULL)
awal->previous = NULL;
if (awal == NULL)
akhir = NULL;
free(temp);
break;
}
}while (pilih!=5);
}

Tidak ada komentar:

Posting Komentar

revtwt

iklan