C++实现字典数据结构

本文详细介绍了如何用C++不依赖STL构建一个字典数据结构,通过实现学生成绩录入系统,涵盖了新建、检查非空、获取长度、插入数对、删除、查找等功能。程序基于线性表的链表数据结构,包含头文件、成员函数定义及测试文件。通过Xcode进行编译测试,并提供了输出示例。
摘要由CSDN通过智能技术生成

本文使用C++构建了一个字典数据结构,未使用STL,实现了一个学生成绩录入系统,进而实现了字典数据对象的如下功能:

  1. 新建一个字典;
  2. 检查字典非空;
  3. 得到字典的数据长度;
  4. 插入一个数对;
  5. 按学生姓名删除对应的字典数据;
  6. 按分数查找所有符合的学生姓名;
  7. 按姓名查找对应成绩;
  8. 遍历输出链表;

该程序使用了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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值