《数据结构(C语言版)》严蔚敏代码实现

您所在的位置:网站首页 数据结构严蔚敏代码合集 《数据结构(C语言版)》严蔚敏代码实现

《数据结构(C语言版)》严蔚敏代码实现

2024-07-10 16:19| 来源: 网络整理| 查看: 265

一、前言

最近在重新学习数据结构啦,网上说这本书挺不错哒,于是我开始啃这本书咯...有一说一,严奶奶的书挺好的,就是有点大量使用指针。。。需要沉下心来,看一看画一画才能懂,我自己手敲了一遍书上代码,加上了自己的理解,希望大家也能更清楚的看明白~

好啦废话不多说,下面就上代码!

二、代码

严奶奶的书中预定义了一些预定义常量和类型,大家可以 新建一个y.h文件粘贴以下内容, 然后再去复制代码哦。

y.h文件内容:

/** * 严奶奶书中的预定义常量和类型 **/ //函数结果状态代码 #define TRUE 1 //成功 #define FALSE 0 //失败 #define OK 1 //成功 #define ERROR 0 //错误 #define INFEASIBLE -1 //不可实行 #define OVERFLOW -2 //溢出 //Status 是函数的类型,其值是函数结果状态代码 typedef int Status;

顺序表SqList.cpp:

#include "y.h" #include #include #include using namespace std; typedef int ElemType; /** * 严奶奶顺序表的实现 * by 熊子q 2021.1.28 **/ #define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量 #define LISTINCREMENT 10 //线性表存储空间的分配增量 //强悍如斯的严奶奶,强悍如斯的顺序表 typedef struct { ElemType *elem; //存储空间基址 int length; //当前长度 int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位) }SqList; //顺序表初始化 Status InitList_Sq(SqList &L){ //构造一个空的线性表L,动态分配空间 L.elem = (ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); //存储空间分配失败 L.length = 0; //空表长度为0 L.listsize = LIST_INIT_SIZE; //初始存储容量 return OK; } //销毁线性表,基本操作,书上没有,自己写的 void DestoryList_Sq(SqList &L){ free(L.elem); //释放后的无效指针必须置为空,不然会导致内存泄漏 L.elem = NULL; L.length=0; L.listsize=0; } //清空线性表,基本操作,书上没有,自己写的 void ClearList_Sq(SqList &L){ L.length = 0; } //判断线性表是否为空,基本操作,书上没有,自己写的 Status ListEmpty_Sq(SqList L){ if(L.length == 0) return TRUE; else return FALSE; } //获取顺序表的长度,基本操作,书上没有,自己写的 int ListLength_Sq(SqList L){ return L.length; } //获取元素,基本操作,书上没有,自己写的 Status GetElem_Sq(SqList L, int i, ElemType &e){ //获取顺序表L中第i个位置的元素e //i的合法值为1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3