c语言映射关系的程序
C语言中实现映射关系的方式有很多种,例如使用数组、链表、哈希表等数据结构。下面将分别介绍这几种实现映射关系的方法。
1. 使用数组:
数组是C语言中最基本的数据结构,可以用来实现简单的映射关系。定义一个固定大小的数组,数组的下标代表键,数组的元素代表值。通过数组下标来访问对应的值,即可实现映射关系。
```
#define SIZE 10
int map[SIZE] = {0}; // 初始化为0
// 映射关系的插入
void insert(int key, int value) {
    if (key >= 0 && key < SIZE) {
        map[key] = value;
    }
}
// 映射关系的查询
int get(int key) {
    if (key >= 0 && key < SIZE) {
        return map[key];
    }
    return -1; // 不存在该映射关系时返回-1
}
```
2. 使用链表:
链表是一种动态数据结构,可以通过指针链接不同的节点。每个节点包含一个键和一个值,通过遍历链表,到键与给定键相等的节点,即可获取对应的值。
```
typedef struct Node {
    int key;
    int value;
    struct Node* next;
} Node;
Node* head = NULL; // 头结点
// 映射关系的插入
void insert(int key, int value) {
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->key = key;
    newNode->value = value;
    newNode->next = NULL;
   
    if (head == NULL) {
        head = newNode;
    } else {
        newNode->next = head;
        head = newNode;
    }
}
// 映射关系的查询
int get(int key) {
    Node* curr = head;
    while (curr != NULL) {
        if (curr->key == key) {
            return curr->value;
        }
        curr = curr->next;
    }
    return -1; // 不存在该映射关系时返回-1
}
```
3. 使用哈希表:
哈希表是一种利用哈希函数将键映射到值的数据结构。使用哈希函数将键转换成对应的哈希值,然后存储在哈希表中。当需要查询值时,使用相同的哈希函数计算键的哈希值,然后在哈希表中查对应的值。
```
#define SIZE 10
typedef struct {
    int key;
    int value;
数组和链表
} Node;
Node hashMap[SIZE];
// 哈希函数
int hash(int key) {
    return key % SIZE;
}
// 映射关系的插入
void insert(int key, int value) {
    int index = hash(key);
    Node* newNode = (Node*)malloc(sizeof(Node));
    newNode->key = key;
    newNode->value = value;
    hashMap[index] = *newNode;
}
// 映射关系的查询
int get(int key) {
    int index = hash(key);
    if (hashMap[index].key == key) {
        return hashMap[index].value;
    }
    return -1; // 不存在该映射关系时返回-1
}
```
以上是三种常见的C语言实现映射关系的方式,分别使用数组、链表和哈希表。根据实际需求和具体情况,选择合适的方法来实现映射关系。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。