Sunday 25 May 2014

C dilinde AVL ağaç işlemleri(ekleme,dengeleme,listeleme,adim sayisinin tespiti ve arama)

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

//avl node tanımlanması
struct node
{
    int key;
    struct node *left;
    struct node *right;
    int height;
};

 int adim;
 int node_sayisi;
 int bulundu;

//verilen nodun yüksekliğini bulan fonksiyon..
int height_calculate(struct node *node)
{
    if (node == NULL)
        return 0;
    return node->height;
}

//iki sayının büyüğünü bulan fonksiyon.....
int max(int a, int b)
{
    return (a > b)? a : b;
}


struct node* newNode(int key)
{
    struct node* node = (struct node*)
                        malloc(sizeof(struct node));
    node->key   = key;
    node->left   = NULL;
    node->right  = NULL;
    node->height = 1;
    return(node);
}


struct node *rightRotate(struct node *b)
{
      struct node* a=b->left;
      struct node* subtree2=a->right;
     
     //döndürme yapılıyor...      
                      a->right=b;
                      b->left=subtree2;
       
         a->height=max(height_calculate(a->left),height_calculate(a->right))+1;  
           b->height=max(height_calculate(b->left),height_calculate(b->right))+1;    
           
           
            return a;
           
   
}


struct node *leftRotate(struct node *a)
{
           
           
       struct node* b=a->right;
       struct node* subtree2=b->left;
     
     
       //döndürme ...
       
        b->left=a;
       a->right=subtree2;  
         
     
     a->height=max(height_calculate(a->left),height_calculate(a->right))+1;
     b->height=max(height_calculate(b->left),height_calculate(a->right))+1;  
           
            return b;
 
}


int getBalance(struct node *r)
{
    if (r == NULL)
        return 0;
    return height_calculate(r->left) - height_calculate(r->right);
}

struct node* insert(struct node* node, int key)
{
   
    if (node == NULL)
        return(newNode(key));

    if (key < node->key)
        node->left  = insert(node->left, key);
    else
        node->right = insert(node->right, key);

   
    node->height = max(height_calculate(node->left), height_calculate(node->right)) + 1;

   
    int balance = getBalance(node);




   
   if (balance > 1 && key < node->left->key)
        return rightRotate(node);

 
    if (balance < -1 && key > node->right->key)
        return leftRotate(node);

 
    if (balance > 1 && key > node->left->key)
    {
        node->left =  leftRotate(node->left);
        return rightRotate(node);
    }

 
    if (balance < -1 && key < node->right->key)
    {
        node->right = rightRotate(node->right);
        return leftRotate(node);
    }

    return node;
}


void inOrder(struct node *root)
{
    if(root != NULL)
    {
       
        inOrder(root->left);
        printf("%d ", root->key);
        inOrder(root->right);
    }
}
 void display(){          
               printf("1.EKLE\n");
               printf("2.LISTELE(INORDER)\n");
               printf("3.ARAMA \n");
               printf("4.ORTALAMA ADIM SAYISI\n");
               printf("5.CIKIS\n\n");
               printf("SECIMINIZ: \n\n");
               }

void  count_node(struct node *root){
                 if(root!=NULL){
                         node_sayisi++;      
                          count_node(root->left);
                          count_node(root->right);    
                                }    
                   
                      }

struct node *search(struct node *root,int aranan){
                 
              if(root==NULL) return NULL;
             
           
                     if(aranan<root->key) {adim++;
                     return  search(root->left,aranan);
                                       
                                                       }
                    else if(aranan>root->key){ adim++;
                           return search(root->right,aranan);
                                       
                                              }
                    else
                          adim++;
                          return root;                  
                                           
                   
                  }


int InternalPathLength(struct node *root,int level){
           
if(root==NULL) return 0;

return level+InternalPathLength(root->left,level+1)+InternalPathLength(root->right,level+1);


                              }


int main()
{
  struct node *root = NULL;
 int sec;
 
   while(1){
      printf("\n\n");
  display();
  scanf("%d",&sec);
  if(sec==1){int sayi;
             printf("sayı giriniz:");
             scanf("%d",&sayi);
             root=insert(root,sayi);
           
             }
  if(sec==2) {
             inOrder(root);
             }
 
  if(sec==3){
             int aranan;
             printf("\n\n Aranacak sayı:");
             scanf("%d",&aranan);
             adim=0;
         
           if(search(root,aranan)==NULL)   printf("\n\nkayit bulunamadı...\a\a\n\n");
           else{
                       printf("\n\nkayit %d adimda bulundu...\n\n",adim);                    
                                            }
                 
             }
  if(sec==4){
             node_sayisi=0;
             count_node(root);
             printf("\n\nnode sayisi=%d ",node_sayisi);
           
             printf("\n\nInternal path length=%d\n\n",InternalPathLength(root,1));
             printf("ORTALAMA ADIM SAYISI:%f dir\n\n",(float)InternalPathLength(root,1)/node_sayisi);
           
             }
 
 
 
    if(sec==5) break;
    }
    printf("cikis yapiliyor.. cikmak icin tusa bas");      
   
     getch();          

}

Sunday 11 May 2014

ASSEMBLY dilinde ASCII-BCD dönüşümü ve sayıların toplamı

   .MODEL SMALL
   .STACK 64
;--------------------------------------------------------------------
    .DATA
 DATA1_ASC DB '1234545612'
 DATA2_ASC DB '5645342978'
 DATA1_BCD DB 5 DUP(?)
 DATA2_BCD DB 5 DUP(?)
 DATA3_ADD DB 5 DUP(?)
 DATA4_ASC DB 10 DUP(?)
 ;--------------------------------------------------------------------
.CODE
     MAIN PROC FAR
        MOV AX,@DATA
        MOV DS,AX
     MOV SI,OFFSET DATA1_ASC
     MOV BX,OFFSET DATA1_BCD
     MOV CX,10
     CALL CONV_BCD
;*****************data1 convert...
      MOV SI,OFFSET DATA2_ASC
      MOV BX,OFFSET DATA2_BCD
      MOV CX,10
      CALL CONV_BCD    
;*****************data2 converT
      CALL BCD_ADD  
      CALL CONV_ASC
      HLT
     MAIN ENDP
 ;---------------------------------------------------------------------
 CONV_BCD PROC
    LP: PUSH CX
         MOV AX,[SI]
         XCHG AH,AL
         AND AX,0F0FH
         MOV CL,04
         SHL AH,CL
         OR AL,AH
         MOV [BX],AL  
         INC BX
         INC BX
         INC SI
         POP CX
         LOOP LP
        RET
    CONV_BCD ENDP  
;----------------------------------------------------------------------    
   BCD_ADD PROC
    MOV SI,OFFSET DATA1_BCD
      MOV DI,OFFSET DATA2_BCD
      MOV BX,OFFSET DATA3_ADD
      MOV CX,5
      CLC
    LP2:MOV AL,[SI]
        ADC AL,[DI]
        DAA
       MOV [BX],AL
        INC SI
        INC DI
        INC BX
      LOOP LP2
          RET  
   BCD_ADD ENDP    
;-----------------------------------------------------------------------      
   CONV_ASC PROC
    MOV SI,OFFSET DATA3_ADD
    MOV DI,OFFSET DATA3_ASC
    MOV CX,05
    LP3: MOV AL,[SI]
         MOV AH,AL
         AND AX,0F00FH
         MOV CL,04
         SHR  AH,CL
         XCHG AH,AL
         OR AX,3030H
         MOV [DI],AX
         ADD DI,2
         INC SI
         LOOP LP3
      RET
    CONV_ASC ENDP    
;------------------------------------------------------------------------        
       
       
       
       
   
 
             
   
         
       
     

Saturday 3 May 2014

JAVADA LZW sıkıştırma algoritması kodlama ve çözme kaynak kodları

import java.io.*;
import java.util.*;

public class LZW {
   
    public static List<Integer> compress(String uncompressed){
       
        int box_size=256;
   
    Map<String,Integer>  box=new HashMap<String,Integer>();
   
    for(int i=0;i<256;i++) box.put(""+(char)i, i);//initialize table...
   
   
    List<Integer> result=new ArrayList<Integer>();
   
    String p="";
   
    for(char c:uncompressed.toCharArray()){
                      if(box.containsKey(p+c)==true)  p=p+c;
                      else{
                           result.add(box.get(p));
                           box.put(p+c, box_size++);
                          p=""+c;
                       
                          }
                     
                                     }//for sonu...
   
    if(p.equals("")==false) result.add(box.get(p));

    return result;
   
    }
   
public static String decompress(List<Integer> compressed){
   
   int box_size=256;
 
   Map<Integer,String> box=new HashMap<Integer,String>();
 
   String result="";
   for(int i=0;i<256;i++) box.put(i,""+(char)i);
 
   String p=""+(char)(int)compressed.remove(0);
 
   result=p;
 
   String entry="";
   for(int k:compressed){
             if(box.containsKey(k)==true) entry=box.get(k);
           
             else if(k==box_size) entry=p+p.charAt(0);
                 
                     else System.err.println();//hata...
 
                     
 
   
    result=result+entry;
   
   
    box.put(box_size++,p+entry.charAt(0));
   
   
    p=""+entry;
 }//for sonu

 
   return result;
}  
   
   
   
   
    public static void main(String[] args) throws IOException {
   
       
        String text="";
       
        try {
            FileInputStream fıs=new FileInputStream("D:\\deneme\\data.txt");
            InputStreamReader ısr=new InputStreamReader(fıs);
            BufferedReader br=new BufferedReader(ısr);
           
           String l=br.readLine();
         
         
           while(l!=null){
           text+=l;
           l=br.readLine();
         
           }
     
        } catch (Exception e) {
            e.printStackTrace();
        }
       
        List<Integer> compressed=compress(text);
       

        System.out.println(""+compressed);
       
        FileWriter fw=new FileWriter("D:\\deneme\\data_zip.txt");
        fw.write(""+compressed);
        fw.close();
       
       
        String decompressed=decompress(compressed);
       
        System.out.println(decompressed);
       
        FileWriter fw2=new FileWriter("D:\\deneme\\org.txt");
        fw2.write(decompressed);
        fw2.close();
       

Friday 2 May 2014

DOS Komutları ( Birbirinden önemli komutlar )


Çalıştır komutları ile bilgisayarınıza daha iyi hakim olabilir, dilediğiniz gibi hükmedebilirsiniz.
compmgmt.msc : Bilgisayar yönetimini açar.
clipbrd.exe : Pano işlemcisini açar.
cleanmgr.exe : Disk temizleyiciyi açar.
ciadv.msc : Dizin yöneticisini açar.
charmap.exe : Karakterleri ayarlamanızı sağlar.
Sponsor baglantıya tıklayarak teşekkür edebilirsiniz.
calc.exe :
 Hesap makinesini açar.
diskmgmt.msc : Disk yönetimini açar.
devmgmt.msc :  Aygıt yöneticisini açar.
dfrg.msc :  Disk birleştiriciyi açar.
Sponsor baglantıya tıklayarak teşekkür edebilirsiniz.
eudcedit.exe : Karakter imal edebilirsiniz.
appwiz.cpl : Program ekle kaldırı açar.
access.cpl :  Erişebilirlik seçeneklerini açar.
accwiz.exe :  Erişebilirlik sihirbazını açar.
desk.cpl : Görüntü özelliklerini açar.
eventvwr.exe : Olay görüntüleyicisini açar
freecell.exe :  İskambil oyununu açar.
fsmgmt.msc :  Paylaşılan klasörler menüsünü açar.
hdwwiz.cpl :  Donanım ekleme sihirbazını açar.
Sponsor baglantıya tıklayarak destek verebilirsiniz.
iexpress.exe :  Setup programını açar.
inetcpl.cpl :  İnternet özelliklerini açar.
intl.cpl :  Bölge ve dil ayarlarını açar.
joy.cpl : Oyun kontrollerini açar.
magnify.exe :  Büyüteçi açar.
main.cpl :  Fare özelliklerini açar.
mmsys.cpl : Ses ayarlarını açar.
mspaint.exe : Paint programını açar.
narrator.exe :  İngilizce ekran okuyucusunu açar.
ntbackup.exe :  Yedekleme sihirbazını açar.
nusrmgr.cpl :  Kullanıcı hesaplarını açar.
osk.exe : Ekran klavyesi açar.
telnet.exe :  Telnet’i açar.
spider.exe :  Kağıt oyunu açar.
gpedit.msc :  Grup poliçesi açar.
msconfig.exe  : Sistem ayarlarını açar.
verifier.exe : Sürücü monitörünü açar.
drwtsn32.exe :  Sorun tanıma aracını açar.
dxdiag.exe :  DirectX sürümünüzü öğrenmenizi sağlar.
mobsync.exe :  Senkronizasyon sağlar.
mplay32.exe :  Media Player’ın çok basit bir halini açar.
odbcad32.exe : Database işleme sağlar.
packager.exe  : Obje paketleyiciyi açar.
perfmon.exe :  Sistem monitörünü açar.
progman.exe : Masaüstü yöneticisini açar.
rasphone.exe :  Erişim defterini açar.
shrpubw.exe :  Network paylaşımı bilgisini açar.
sigverif.exe :  İmza denetleyicisini açar.
sysedit.exe :  Sistem yöneticisini açar.
syskey.exe : Şifre databaseini açar.
sndrec32.exe : Ses kaydedicisini açar.
timedate.cpl :  Tarih ayarlama penceresini açar.
tourstart.exe :  Windows XP turu başlatır.
winchat.exe :  Windows içinde bulunan chat programını açar.
winmine.exe :  Mayın Tarlası oyununu açar.
write.exe :  WordPad’i açar.
wupdmgr.exe :  Windows güncelleştirme penceresini açar.
explorer.exe :  Windows Gezgini’ni açar.
powercfg.cpl :  Güç seçeneklerini açar.
rasphone.exe  : Ağ bağlantılarını açar.
regedt32.exe : Windows Kayıt Düzenleyicisi’ni açar.
regedit.exe : Windows Kayıt Düzenleyicisi’ni açar.
sndvol32.exe : Ses ayarlarını yapmanızı sağlar.
notepad.exe :  Not defterini açar.
taskmgr.exe :  Görev yöneticisini açar.
images
Denetim Masası Öğeleri İçin Çalıştır Komutları :
Program Ekle Kaldır / control appwiz.cpl
Tarih Saat özellikleri /control timedate.cpl
Ekran özellikleri / control desk.cpl
Hızlı bul / control findfast.cpl
Fontlar / control fonts
İnternet Özellikleri /control inetcpl.cpl
Klavye özellikleri /control main.cpl keyboard
Mouse Özellikleri / control main.cpl
Multimedya Özellikler /control mmsys.cpl
Ağ Özellikleri / control netcpl.cpl
Şifre özellikleri / control password.cpl
Printer /control printers
Ses Özellikleri / control mmsys.cpl sounds
Sistem Özellikleri /control sysdm.cpl