
基础数据结构
文章平均质量分 78
xueda120
程序员
展开
-
串的定长顺序存储表示
//串的定长顺序存储表示 #define MAXSTRLEN 40 // 用户可在255以内定义最大串长(1个字节) typedef char SString[MAXSTRLEN+1]; // 0号单元存放串的长度//串采用定长顺序存储结构的基本操作(14个) // SString是数组,故不需引用类型。此基本操作包括算法4.2,4.3,4.5 Status StrAssign(SSt原创 2013-08-04 15:20:27 · 2662 阅读 · 0 评论 -
循环链表
设立尾指针的单循环链表的12个基本操作:void InitList(LinkList &L){ // 操作结果:构造一个空的线性表L L=(LinkList)malloc(sizeof(LNode)); // 产生头结点,并使L指向此头结点 if(!L) // 存储分配失败 exit(OVERFLOW); L->next=L; // 头结点的指针域指向头结点 }原创 2013-08-04 14:41:14 · 610 阅读 · 0 评论 -
栈
栈的顺序存储结构:#define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACK_INCREMENT 2 // 存储空间分配增量 struct SqStack // 顺序栈 { SElemType *base; // 在栈构造之前和销毁之后,base的值为NULL SElemType *top; // 栈顶指针 int stacks原创 2013-08-04 14:49:21 · 815 阅读 · 0 评论 -
抽象数据类型的表示与实现
#include // 字符串函数头文件 #include // 字符函数头文件 #include // malloc()等 #include // INT_MAX等 #include // 标准输入输出头文件,包括EOF(=^Z或F6),NULL等 #include // atoi(),exit() #include // eof() #include // 数学函数头文件,包括f原创 2013-08-04 14:33:37 · 2121 阅读 · 0 评论 -
线性表的顺序表示和实现
线性表的动态分配顺序存储结构:#define LIST_INCREMENT 2 // 线性表存储空间的分配增量 struct SqList { ElemType *elem; // 存储空间基址 int length; // 当前长度 int listsize; // 当前分配的存储容量(以sizeof(ElemType)为单位) };顺序存储的线性表的基本操作(12原创 2013-08-04 14:35:34 · 710 阅读 · 0 评论 -
队列
单链队列-队列的链式存储结构:typedef struct QNode { QElemType data; QNode *next; }*QueuePtr; struct LinkQueue { QueuePtr front,rear; // 队头、队尾指针 };链队列的基本操作(9个) :void InitQueue(LinkQueue &Q){ // 构造一个空原创 2013-08-04 15:18:44 · 584 阅读 · 0 评论 -
线性表的链式表示和实现
线性表的单链表存储结构: struct LNode { ElemType data; LNode *next; }; typedef LNode *LinkList; // 另一种定义LinkList的方法 带有头结点的单链表的基本操作(12个):void InitList(LinkList &L) { // 操作结果:构造一个空的线性表L L=(LinkLis原创 2013-08-04 14:38:22 · 1196 阅读 · 0 评论 -
双向链表
线性表的双向链表存储结构:typedef struct DuLNode { ElemType data; DuLNode *prior,*next; }DuLNode,*DuLinkList;带头结点的双向循环链表的基本操作(14个):void InitList(DuLinkList &L){ // 产生空的双向循环链表L L=(DuLinkList)malloc(s原创 2013-08-04 14:46:50 · 825 阅读 · 0 评论 -
串的堆分配存储表示
//串的堆分配存储 struct HString { char *ch; // 若是非空串,则按串长分配存储区,否则ch为NULL int length; // 串长度 }; // 串采用堆分配存储结构的基本操作(15个) // 包括算法4.1、4.4 Status StrAssign(HString &T,char *chars) { // 生成一个其值等于串常量ch原创 2013-08-04 15:21:40 · 3282 阅读 · 1 评论 -
数组的顺序表示和实现
// c5-1.h 数组的顺序存储结构。#define MAX_ARRAY_DIM 8 // 假设数组维数的最大值为8struct Array{ ElemType *base; // 数组元素基址,由InitArray分配 int dim; // 数组维数 int *bounds; // 数组维界基址,由InitArray分配 int *constants; // 数组映象函数常原创 2013-08-04 15:23:52 · 1528 阅读 · 0 评论 -
二叉树的顺序存储
// c6-1.h 二叉树的顺序存储表示 #define MAX_TREE_SIZE 100 // 二叉树的最大结点数 typedef TElemType SqBiTree[MAX_TREE_SIZE]; // 0号单元存储根结点 struct position { int level,order; // 结点的层,本层序号(按满二叉树计算) };// bo6-1.cpp 二原创 2013-08-04 15:25:05 · 1339 阅读 · 0 评论 -
二叉树的顺序存储与基本操作
在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有个结点;深度为k的二叉树至多有个结点;对任何一棵二叉树T,如果其终端结点数为,度为2的结点原创 2013-08-06 16:45:55 · 3584 阅读 · 0 评论