本文使用C++构建了一个字典数据结构,未使用STL,实现了一个学生成绩录入系统,进而实现了字典数据对象的如下功能:
- 新建一个字典;
- 检查字典非空;
- 得到字典的数据长度;
- 插入一个数对;
- 按学生姓名删除对应的字典数据;
- 按分数查找所有符合的学生姓名;
- 按姓名查找对应成绩;
- 遍历输出链表;
该程序使用了pair
容器,整个程序基于线性表数据结构(链表描述)。由3个文件构成,头文件定义了字典类,函数定义文件定义了字典类的成员函数,测试文件测试了字典数据结构,同时对输入错误的情况进行了纠错。编译环境基于Xcode。
头文件源码如下:
//
// dictionarycreat.hpp
// 字典数据结构
//
// Created by lq on 2019/9/23.
// Copyright © 2019 Mr.liang. All rights reserved.
//
#ifndef dictionarycreat_hpp
#define dictionarycreat_hpp
#include <iostream>
#include <string>
using namespace std;
//使用typedef简化pair类型的声明
typedef pair<string, float> student;
struct node//定义链表节点
{
node* next;
node* last;
student data;//data为一个pair类型的数据
};
class dictionary_creat
{
private:
node* head;
node* tail;
int length;//链表长度
public:
dictionary_creat();
~dictionary_creat();
//检查是否为空,链表为空返回true,否则返回false
bool empty_check();
//返回链表长度
int get_size();
//插入数对(pair类型)
void insert(student & element);
//按姓名删除对象
void erase(const string name);
//按分数查找所有符合的学生姓名
studen