#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

typedef struct Tnode{
    int value;
    Tnode *next;
    Tnode *back;
};

Tnode *baru, *bantu, *head, *tail;

void tambah(int value){
    baru = new Tnode;
    baru->next = baru;
    baru->back = baru;
    baru->value = value;
}

void tambahbelakang(int value){
    tambah(value);
    if(head == NULL)
        head = tail = baru;
    else{
        tail->next = baru;
        baru->back = tail;
        tail = baru;
    }
    tail->next = head;
    head->back = tail;
}

void tambahdepan(int value){
    tambah(value);
    if(head == NULL)
        head = tail = baru;
    else{
        baru->next = head;
        head->back = baru;
        head = baru;
    }
    tail->next = head;
    head->back = tail;
}

void cetak(){
    bantu = head;
    do{
        printf("%d",bantu->value);
        bantu = bantu->next;
    }
    while(bantu!=head);
}

void menu(){
    int pil;
    int isi;
    do{
        printf("\nMenu :\n1.Masuk dari depan\n2.Masuk dari belakang\n3.cetak\n4.exit\nMasukan pilihan Anda : ");
        scanf("%d",&pil);
        switch(pil){
            case 1 :
                printf("Masukan Nilai : ");
                scanf("%d",&isi);
                tambahdepan(isi);
                break;
            case 2 :
                printf("Masukan Nilai : ");
                scanf("%d",&isi);
                tambahbelakang(isi);
                break;
            case 3 :
                cetak();
                printf("\n");
                break;
            case 4 : 
                printf("Terima Kasih");
                break;
            default:
                printf("Tidak ada pilihan tersebutm masukan angka dari 1 sampai 3");
        }
    }
    while(pil!=4);
}

int main()
{
    menu();
    return 0;
}