Chào, Khách!
  1. imba.real
    Offline
    imba.real   [2/0]
    Ai có Code C của bài toán ứng dụng cấu trúc dữ liệu bảng băm và hàm băm để làm từ điển đơn giản không???
    (chương trình có thể nhập từ mới, sửa chữa và tra từ mới)
    Cảm Ơn!!!
  2. alt+F4
    Offline
    alt+F4   [596/423]
    Ở trường mình đâu học hashtable nhỉ!!!

    Bạn tham khảo code này nhá, cái này là lưu trữ giá trị số nguyên
    Mã:
    #include<stdio.h>
    #include<conio.h>
    #define M 11  // khai bao kich thuoc bang bam
    #define NULLKEY -365  // khai bao nut rong co gia tri la -365
    #define TRUE 1
    #define FALSE 0
    int BangBam[M];  // tao bang bam voi kich thuoc M
    int SoNut; // so nut cua bang bam
    int HamBam(int k) 
    {
        return k%M;
    }
    void KhoiTaoBangBam()
    {
        for(int i=0;i<M;i++)
            BangBam[i]=NULLKEY;
    }
    int Full()  // kiem tra xem bang bam da day hay chua?
    {
        if (SoNut==M-1) return TRUE;
        else return FALSE;
    }
    int Search(int k)  // tim kiem khoa K co o trong bang bam hay khong?
    {
        int i=HamBam(k);
        while (BangBam[i]!=k && BangBam[i]!=NULLKEY)
        {
            i++;
            if (i>=M) i=i-M;
        }
        if (BangBam[i]==k) return i;
        else return M;
    }
    int ThemPhanTu(int k) // them khoa k vao bang bam
    {
        int i,j;
        if (Full())
        {
            printf("\nBang bam da day");
            return 0;
        }
        i=HamBam(k);
        while (BangBam[i]!=NULLKEY)
        {
            i++;
            if (i>=M) i=i-M;
        }
        BangBam[i]=k;
        SoNut++;
        return i;
    }
    void InBangBam()  
    {
        printf("\nBANG BAM CUA BAN:\n");
        printf("\n\t\tVi tri\t\t\tKhoa\n");
        for(int i=0;i<M;i++)
            if (BangBam[i]!=NULLKEY)
                printf("\n\t\t%d\t\t\t%d",i,BangBam[i]);
            else
                printf("\n\t\t%d\t\t\tNULL",i);
    }
    
    void main()
    {
        clrscr();
        int khoa_nhap,khoa_tim;
        KhoiTaoBangBam();
        printf("\tCHUONG TRINH MINH HOA BANG BAM DUNG PHUONG PHAP TIM TUYEN TINH");
        for(int i=0;i<M-1;i++)
        {
            printf("\nNhap phan tu thu %d:",i+1);
            scanf("%d",&khoa_nhap);
            ThemPhanTu(khoa_nhap);
        }
        InBangBam();
        printf("\n\nNhap vao khoa ban can tim:");
        scanf("%d",&khoa_tim);
        int result=Search(khoa_tim);
        if (result==M) printf("Khong tim thay %d trong bang bam",khoa_tim);
        else printf("\nTim thay roi! %d nam o vi tri thu %d trong bang bam",khoa_tim,result);
        getch();
    }
  3. imba.real
    Offline
    imba.real   [2/0]
    Cảm ơn bạn nhiều nhé!!!
  4. alt+F4
    Offline
    alt+F4   [596/423]
    What the Firefox!!!!!! >"<