随笔分类 - 数据结构
摘要:1 /* 2 队列的数组实现。 3 为避免出现队列“看似满了”现象,采用循环数组实现。 4 当Size = 0 或 Rear = Front - 1 ,说明队列为空。 5 要注意的是,插入的第一个元素的位置是Array[ 1 ],而不是Array[ 0 ]。 6 */ 7 8 /*接口头文件*/ 9 typedef int ElementTy...
阅读全文
摘要:1 /* 2 队列的链表实现。 3 队列是一种在表头删除,表尾插入的表。 4 队列的出队和入队操作要更新队尾和队头。 5 对于带头结点的队列,当队尾指向头结点,队头指向NULL则队列为空对。 6 */ 7 8 /*接口头文件*/ 9 typedef int ElementType; 10 #ifndef _QUEUE_H 11 #def...
阅读全文
摘要:1 /* 2 栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端(最后进入栈的元素位置),叫做栈的顶。 3 栈具有后进先出的特点,用链表实现时可采用首插法实现这一特性。 4 对于栈,进栈操作要检查栈是否有空间;出栈和取栈顶值要检查栈是否为空栈。 5 */ 6 7 /*栈的链表实现*/ 8 9 /*接口头文件*/ 10 typedef...
阅读全文
摘要:1 /* 2 栈的数组实现 3 */ 4 5 /*接口头文件*/ 6 7 typedef int ElementType; 8 #ifndef _STACK_H 9 #define _STACK_H 10 #include 11 struct StackRecord; 12 typedef struct StackRecord * Stack;...
阅读全文
摘要:1 /* 2 单链表实现基数排序 3 */ 4 5 /*接口头文件*/ 6 typedef int ElementType; 7 8 #ifndef _LIST_H 9 #define _LIST_H 10 #include 11 12 struct Node; 13 typedef struct Node * PtrToNode; 14...
阅读全文
摘要:1 /* 2 多项式ADT——单链表实现 3 */ 4 5 /*接口头文件*/ 6 #include 7 typedef int ElementType; 8 9 #ifndef _POLYNOMIAL_H 10 #define _POLYNOMIAL_H 11 12 struct Node; 13 typedef struct Node ...
阅读全文
摘要:1 /* 2 多项式ADT数组实现 3 */ 4 5 6 /*接口声明*/ 7 #ifndef _POLYNOMIAL_H 8 #define _POLYNOMIAL_H 9 10 #define MaxDegree 100 //指定多项式的最大指数 11 12 struct node 13 { 14 int CoeffArray[ MaxDegr...
阅读全文
摘要:1 /* 2 单链表游标实现 3 特性: 4 1.数据存储在一组结构体中。 5 2.动态管理内存 6 游标实现: 7 1.为满足特性1,创建一个全局的结构体数组CursorSpace[SPACE],数组下标充当地址 8 2.用数组实现动态管理。当Next等于0表示空间已满,单元0为表头提供可用空间位置 9 */...
阅读全文
摘要:前言 这应该算是Mark Allen Weiss《数据结构和算法分析——C语言描述》的家庭作业。从前的学习笔记保存在OneNote,正好借着写博的机会翻出来复习。 正文 链表的定义很简单,每个节点包含数据域和指针域。 下面是单链表的实现,包含list.h和list.c两个文件。list.h是接口声明
阅读全文
摘要:1 /*接口头文件*/ 2 typedef int ElementType; 3 4 #ifndef _SEARCHTREE_H 5 #define _SEARCHTREE_H 6 7 struct TreeNode; 8 typedef struct TreeNode * PtrToNode; 9 typedef PtrToNode Position; 10 t...
阅读全文