Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<Windows.h>
- struct data{
- int angka;
- struct data *prev;
- struct data *next;
- }*head,*now,*temp;
- void ins(){
- int x;
- printf("Masukan Angka yang ingin ditambahkan : ");
- scanf("%d",&x);fflush stdin;
- now=head;
- do{
- if(x>now->angka){
- //printf("%d",now->angka);getchar();
- temp=now;
- now=(struct data*)malloc(sizeof(data));
- now->angka=x;
- now->next=temp;
- now->prev=temp->prev;
- temp->prev=now;
- if(now->prev!=NULL){
- now=now->prev;
- now->next=temp->prev;
- }//kalo dia head
- else
- head=now;
- break;
- }
- else if (now->next==NULL){//kalo tail
- temp=now;
- now=(struct data*)malloc(sizeof(data));
- now->angka=x;
- now->prev=temp;
- now->next=0;
- temp->next=now;
- break;
- }
- else
- now=now->next;
- }while(now!=NULL);
- }
- int main(){
- head=0;
- temp=0;
- int x=0;
- printf("Berapa Angka Yang ingin diinput? ");
- scanf("%d",&x);fflush stdin;
- do{
- now=(struct data*)malloc(sizeof(data));
- printf("Masukan Angka : ");
- scanf("%d",&now->angka);fflush stdin;
- //Double Link list Start
- now->next=head;
- head=now;
- now->prev=NULL;
- if(now->next!=0){
- temp=now;
- now=now->next;
- now->prev=temp;
- }
- // Double Link list end
- /*now->next=head;
- head=now;*/ //Single Link List
- x--;
- system("cls");
- now=head;
- do{
- printf("%d",now->angka);
- if (now->next!=NULL)
- printf(" -> ");
- now=now->next;
- }while(now!=NULL);
- printf("\n");
- }while(x>0);
- ins();
- system("cls");
- now=head;
- do{
- //printf("((Prev)%d) (Now)%d) %d ((Next)%d) -> ",now->prev,now,now->angka,now->next); //Ngecek bener ga nya
- printf("%d",now->angka);
- if (now->next!=NULL)
- printf(" -> ");
- now=now->next;
- }while(now!=NULL);
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment