Hỏi đáp Giúp Mình Môn Cấu trúc Dữ Liệu Và Giải Thuật!!!

Thảo luận trong 'Hỏi đáp chung' bắt đầu bởi imba.real, 1 Tháng năm 2012.

  1. Offline

    imba.real

    • Thành Viên Mới

    Số bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    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. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450
    Ở 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. Offline

    imba.real

    • Thành Viên Mới

    Số bài viết:
    2
    Đã được thích:
    0
    Điểm thành tích:
    0
    Cảm ơn bạn nhiều nhé!!!
  4. Offline

    alt+F4

    • Core i3

    Số bài viết:
    596
    Đã được thích:
    423
    Điểm thành tích:
    450
    What the Firefox!!!!!! >"<

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí