Beruflich Dokumente
Kultur Dokumente
#include <iostream.h>
#include <conio.h>
struct TNode{
int data;
TNode *next;
};
void init(){
head = NULL;
tail = NULL;
int isEmpty(){
else return 0;
TNode *baru;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=tail=baru;
tail->next=NULL;
else {
baru->next = head;
head = baru;
cout<<"Data masuk\n";
TNode *baru,*bantu;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=baru;
tail=baru;
tail->next = NULL;
else {
tail->next = baru;
tail=baru;
cout<<"Data masuk\n";
void tampil(){
TNode *bantu;
bantu = head;
if(isEmpty()==0){
while(bantu!=NULL){
cout<<bantu->data<<" ";
bantu=bantu->next;
}
void hapusDepan(){
TNode *hapus;
int d;
if (isEmpty()==0){
if(head!=tail){
hapus = head;
d = hapus->data;
head = head->next;
delete hapus;
} else {
d = tail->data;
head=tail=NULL;
cout<<d<<"terhapus";
void hapusBelakang(){
TNode *bantu,*hapus;
int d;
if (isEmpty()==0){
bantu = head;
if(head!=tail){
while(bantu->next!=tail){
bantu = bantu->next;
hapus = tail;
tail=bantu;
d = hapus->data;
delete hapus;
tail->next = NULL;
}else {
d = tail->data;
head=tail=NULL;
}
cout<<d<<" terhapus\n";
void clear()
TNode *bantu,*hapus;
bantu = head;
while(bantu!=NULL)
hapus = bantu;
bantu = bantu->next;
delete hapus;
head = NULL;
printf("CLEAR");
main()
int pil,databaru;
do
clrscr();
cout<<endl<<endl;
cout<<" ==========================="<<endl;
cout<<" ==========================="<<endl;
cout<<" ==========================="<<endl;
switch (pil)
case 1:
cin>>databaru;
insertDepan(databaru);
break;
case 2:
cin>>databaru;
insertBelakang(databaru);
break;
case 3:
hapusDepan();
break;
case 4:
hapusBelakang();
break;
case 5:
tampil();
break;
}
case 6:
clear();
break;
case 7: {
return 0;
break;
default :
getch();
while(pil!=7);
#include <conio.h>
#include <stdio.h>
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();
struct node
int umur;
float tinggi;
};
void main()
do
clrscr();
cout<<"5. Tampilkan"<<endl;
cout<<"6. Selesai"<<endl;
cin>>pil;
pilih();
while(pil!=6);
}
void pilih()
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
tampil();
else
cout<<"selesai";
void buat_baru()
baru = new(node);
baru->prev=NULL;
baru->next=NULL;
void tambah_belakang()
buat_baru();
if(head==NULL)
head=baru;
tail=baru;
}
else
tail->next=baru;
baru->prev=tail;
tail=baru;
cout<<endl<<endl;
tampil();
void tambah_depan()
buat_baru();
if(head==NULL)
head=baru;
tail=baru;
else
baru->next=head;
head->prev=baru;
head=baru;
cout<<endl<<endl;
tampil();
void hapus_depan()
if (head==NULL)
cout<<"Kosong";
else if (head->next==NULL)
{
hapus=head;
head=NULL;
tail=NULL;
delete hapus;
else
hapus=head;
head=hapus->next;
head->prev=NULL;
delete hapus;
cout<<endl<<endl;
tampil();
void hapus_belakang()
if (head==NULL)
cout<<"Kosong";
else if (head->next==NULL)
hapus=head;
head=NULL;
tail=NULL;
delete hapus;
else
hapus=tail;
tail=hapus->prev;
tail->next=NULL;
delete hapus;
}
cout<<endl<<endl;
tampil();
void tampil()
if (head==NULL)
cout<<"Kosong";
else
bantu=head;
while(bantu!=NULL)
bantu=bantu->next;
getch();
void creation(int);
void display();
void insertion(int,int);
void deletion(int);
struct list
{
int num;
struct list *next;
}*head, *l;
void main()
{
int n1,ch,pos,val;
clrscr();
printf("program single linked list circular\n\n");
printf("Masukkan no node yang akan di masukkan : ");
scanf("%d",&n1);
do
{
printf("\n1.pembuatan\n2.menyisipkan\n3.menghapuskan\n4.menampilkan\n5.keluar\n\n");
printf("\masukkan pilihan anda : ");
scanf("%d",&ch);
switch(ch)
{
case 1:
creation(n1);
break;
case 2:
printf("\n\nmasukkan posisi yang akan di sisipkan : ");
scanf("%d",&pos);
printf("\n\nmasukkan nilai : ");
scanf("%d",&val);
insertion(pos,val);
break;
case 3:
printf("\n\masukkan posisi yang akan di hapus : ");
scanf("%d",&pos);
deletion(pos);
break;
case 4:
display();
getch();
break;
case 5:
exit(0);
}
}while(ch!=5);
getch();
}
/* CREATION */
/* -------- */
/* DISPLAY */
/* ------- */
void display()
{
l=head;
printf("\nnode yang telah dimasukkan adalah : ");
while(l->next>0)
{
printf("%d\t",l->num);
l=l->next;
}
}
/* INSERTION */
/* --------- */
void insertion(pos,val)
{
int i;
struct list *x,*y;
l=head;
i=2;
if(pos==1)
{
x=((struct list *)malloc(sizeof(struct list)));
x->num=val;
x->next=l;
head=x;
}
else
{
while(l->next>0)
{
if(pos==i-1)
{
x=((struct list *)malloc(sizeof(struct list)));
x->num=val;
x->next=l;
y->next=x;
}
y=l;
l=l->next;
i++;
}
}
}
/* DELETION */
/* -------- */
void deletion(pos)
{
int i;
struct list *y;
l=head;
i=1;
if(pos==1)
{ head=l->next; }
else
{
while(l->next>0)
{
if(pos==i)
{ l=l->next;
y->next=l;
break;
}
y=l;
l=l->next;
i++;
}
}
}
#include<stdlib.h>
struct node
int data;
};
void insertion_beginning();
void insertion_last();
void deletion_beginning();
void deletion_last();
void display();
void search();
void main ()
while(choice != 9)
printf("\n*********Main Menu*********\n");
printf("\n===============================================\n");
scanf("\n%d",&choice);
switch(choice)
case 1:
insertion_beginning();
break;
case 2:
insertion_last();
break;
case 3:
deletion_beginning();
break;
case 4:
deletion_last();
break;
case 5:
search();
break;
case 6:
display();
break;
case 7:
exit(0);
break;
default:
void insertion_beginning()
int item;
if(ptr == NULL)
printf("\nOVERFLOW");
else
scanf("%d",&item);
ptr->data=item;
if(head==NULL)
head = ptr;
else
temp = head;
head = ptr;
printf("\nNode inserted\n");
void insertion_last()
int item;
if(ptr == NULL)
printf("\nOVERFLOW");
else
printf("\nEnter value");
scanf("%d",&item);
ptr->data=item;
if(head == NULL)
head = ptr;
else
temp = head;
while(temp->next !=head)
{
temp = temp->next;
temp->next = ptr;
ptr ->prev=temp;
printf("\nnode inserted\n");
void deletion_beginning()
if(head == NULL)
printf("\n UNDERFLOW");
head = NULL;
free(head);
printf("\nnode deleted\n");
else
temp = head;
free(head);
head = temp -> next;
void deletion_last()
if(head == NULL)
printf("\n UNDERFLOW");
head = NULL;
free(head);
printf("\nnode deleted\n");
else
ptr = head;
if(ptr->next != head)
free(ptr);
printf("\nnode deleted\n");
void display()
if(head == NULL)
printf("\nnothing to print");
else
void search()
int item,i=0,flag=1;
ptr = head;
if(ptr == NULL)
printf("\nEmpty List\n");
else
scanf("%d",&item);
flag=0;
else
if(ptr->data == item)
flag=0;
break;
else
flag=1;
i++;
if(flag != 0)