halo gan langsung aja ya ane ceritanya nya lagi latihan latihan coding c nih eh pas nyampe di linked list ane bingung gan
nih pertanyaan ane kan kita masukin inputan dengan cara pushdepan nah terus inputan inputan itu di kumpulin terus di print nah yang ane bingung gimana sih cara sort tuh inputan inputannya
nih gan codingan ane nya maap masih nyubi banget oh iya ini bukan tugas sekolah atau kuliah ya ane lagi coba coba belajar aja
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct data{
int angka;
struct data *next;
}*head,*tail,*curr;
int temp;
void pushdepan(int pilihan1){
curr=(struct data*)malloc(sizeof(struct data)); // fungsinya membuat alokasi memory yang baru
curr->angka=pilihan1;
if(head==NULL){
head=tail=curr;
}
else{
curr->next=head;
head=curr;
}
tail->next=NULL;
}
void popdepan(){//pop head
if(head!=NULL){ //validasi apakah data di dalam ll
if(head==tail){
//apabila didalam ll hanya ada satu data
free(head);
head=tail=NULL;
}else{
curr=head->next;
free(head);
head=curr;
}
}
}
void popbelakang(){
if(head!=NULL){
if(head==tail){
//apabila didalam ll hanya ada satu data
free(tail);
head=tail=NULL;
}else{
//apabila dalam ll tidak hanya ada 1 data
curr=head;
while(curr->next!=tail){
curr=curr->next; //looping untuk mencapai data sebelum tail
}
data *del=tail;
tail=curr;
free(del);
tail->next=NULL;
}
}
}
void cetak(){
curr=head;
while(curr!=NULL){
printf("%d ->",curr->angka);
curr=curr->next;
}
}
void main(){
int pilih;
int pilihan1;
do{
do{
system("cls");
printf("single ll\n");
cetak();
printf(" NULL\n\n");
printf("1.Push Angka\n");
printf("2.Pop Head\n");
printf("3.Pop Tail\n");
printf("Masukkan Pilihan :\n");
scanf("%d",&pilih);fflush(stdin);
}while(pilih<1||pilih>3);
switch(pilih){
case 1:do{
printf("masukan angka [1-100]:");
scanf("%d",&pilihan1);fflush(stdin);
}while(pilihan1<1||pilihan1>100);
pushdepan(pilihan1);
break;
case 2

opdepan();break;
case 3

opbelakang();break;
}
}while(pilih!=4);
getchar();
}