Untitled
unknown
c_cpp
3 years ago
1.2 kB
11
Indexable
#include <stdio.h> #include <stdlib.h> int *dizi=NULL; int sira = 0; int sirabasi = 0; int boyut = 2; int deque(){ if (sira == sirabasi) { printf("sira bos"); } return dizi[sirabasi++]; if (sira-sirabasi<=boyut/4) { int *dizi2 = (int*)malloc(sizeof(int)*boyut/2); for (int i = 0; i < sira-sirabasi; i++) { dizi2[i]=dizi[sira+i]; } sira-=sirabasi; sirabasi=0; free(dizi); dizi=dizi2; boyut/=2; } } void toparla(){ if (sirabasi == 0) return; for (int i = 0; i < boyut; i++) dizi[i]=dizi[i+sirabasi]; sira -= sirabasi; sirabasi=0; } int enque(int x){ if (dizi == NULL) { dizi = (int*)malloc(sizeof(int)*2); } if (sira>=boyut) { int *dizi2 = (int*)malloc(sizeof(int)*boyut*2); for (int i = 0; i < sira; i++) { dizi2[i]=dizi[i]; } free(dizi); dizi=dizi2; boyut*=2; } dizi[sira]=x; sira++; } int main(){ for (int i = 0; i < 20; i++) { enque(i); } for (int i = 0; i < 20; i++) { printf("%d ",deque()); } }
Editor is loading...