Skip to main content

İkili Ağaç C Kodu

int main() { NODEPTR p,q,ptree; int number; scanf(“%d”,&number); ptree=maketree(number); while(scanf(“%d”,&number)!=EOF) { p=q=ptree; while(number!=p->info&&q!=NULL){ p=q; if(number<p->info) q=p->left; else q=p->right; } if(number==p->info) printf(“%d is duplicate \n”,number); else if(number<p->info) setleft(p,number) else setright(p,number) } } //setleft ve setright fonksiyonlarina buradan bakabilirsiniz.

Devamını Oku

Ağaç Yapısı

Oluşturma struct nodetype { int info; struct nodetype *left; struct nodetype *right; }; typedef struct nodetype *NODEPTR NODEPTR maketree (int x) { NODEPTR p; p->info=x; p->left=NULL; p->right=NULL; return(p); } Eleman Ekleme(Sola) void setleft(NODEPTR p,int x) { if(p==NULL) printf(“void insertion”); else if(p->left!=NULL) printf(“involid insertion”); else p->left=maketree(x); } Agacta Tarama(DLR) void pretrow(NODEPTR tree) { if(tree!=NULL) printf(“%d”,tree->info) pretrow(tree->left); […]

Devamını Oku

ÇİFT BAĞLI LİSTE YAPISI

Oluşturma struct node { int info; struct node *left; struct node *right }; typedef struct node *NODEPTR; Eleman Ekleme void insertright (NODEPTR p, int x){ NODEPTR q,r; if(p==NULL){ printf(“void insertion”); exit(1); } q=getnode(); r->info=x; r=p->right; r->left=q; q->right=r; q->left=p; p->right=q; } Eleman Silme void delete (NODEPTR p, int *px){ NODEPTR q,r; if(p==NULL){ printf(“void deletion”); exit(1); } […]

Devamını Oku

LİSTE YAPISI

Oluşturma struct node { int info; struct node *next; }; typedef struct node NODEPTR; NODEPTR getnode() { NODEPTR p; p=(NODEPTR)malloc(sizeof(struct node)); return(p); } Eleman Ekleme void insafter(NODEPTR p,int x){ NODEPTR q; if(p==NULL){ printf(“void insertion”); exit(1); } q=getnode(); q->info=x; q->next=p->next; p->next=q; } Eleman Silme void delafter(NODEPTR p,int *px){ NODEPTR q; if((p==NULL)||(p->next==NULL)){ printf(“void deletion”); exit(1); } q=p->next; […]

Devamını Oku

Kuyruk Yapısı

Oluşturma struct kuyruk { int items[MAXQUEUE]; int front,rear; }; struct kuyruk q; q.front=q.rear=MAXQUEUE-1; Boş mu Kontrolü int empty (struct kuyruk *pq){ return((pq->front==pq->rear)? true: false); } Eleman Ekleme void insert(struct kuyruk *pq,int x){ if(pq->rear==MAXQUEUE-1) pq->rear=0; else (pq->rear)++; if(pq->rear==pq->front){ printf(“queue overflow”); exit(1); } pq->items[(pq->rear)]=x; } Eleman Çıkarma int remove(struct kuyruk *pq){ if(empty(pq)){ printf(“queue underflow”); exit(1); } if(pq->front==MAXQUEUE-1) […]

Devamını Oku