基本数据结构——单链表的实现(C)

单链表是上机时的作业,下面是简易实现,其中测试函数是抄来的: #include <stdio.h> #include <stdlib.h> #include <assert.h> #define OK 1 #define NONONO 0 typedef int element_type; typedef int Status; typedef struct LINKLIST_NODE { element_type data; struct LINKLIST_NODE *next; } LinkListNode; // 初始化单链表 Status LinkListInit(LinkListNode *L); // 删除单链表 Status LinkListDestroy(LinkListNode *L); // 清空单链表 Status LinkListClear(LinkListNode *L); // 判断单链表为空 Status isLinkListEmpty(LinkListNode *L); Read more…

基本数据结构——顺序表的实现(C)

顺序表是上机时的作业,是一种插入和删除的时间复杂度都是 O(N) 的~神奇~数据结构,下面是简易实现~,其中测试函数是抄来的~: #include <stdio.h> #include <stdlib.h> #include <assert.h> #define OK 1 #define NONONO 0 #define INITLENGTH 1000 #define ADDLENGTH 1000 typedef int Status; typedef int element_type; typedef struct ARRLIST { element_type *base; int length; int max; } ArrList; // 初始化顺序表 Status ListInit(ArrList *L); // 删除顺序表 Status ListDestroy(ArrList *L); // Read more…

基本数据结构——链式队列的实现(C)

定义 队列,又称为伫列(Queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。 实现: #include <stdio.h> #include <stdlib.h> #include <assert.h> #define OK 1 #define NONONO -1; typedef int Element_type; //定义 Element_type 类型,即队列数据类型为 int typedef int Status; typedef struct QUEUE_NODE { Element_type data; struct QUEUE_NODE *next; } QueueNode, *Queue_pointer; typedef struct { Queue_pointer front; Queue_pointer rear; } Queue; // 队列初始化 Status Read more…

基本数据结构——链式堆栈的实现(C)

定义 堆栈(英语:Stack)又称为栈或堆叠,是计算机科学中一种特殊的串列形式的抽象数据类型,其特殊之处在于只能允许在链表或数组的一端(称为堆栈顶端指针,英语:Top)进行加入数据(英语:Push)和输出数据(英语:Pop)的运算。由于堆栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。 实现: #include <stdio.h> #include <stdlib.h> #include <assert.h> #define OK 1 #define NONONO -1; typedef int Element_type; //定义 Element_type 类型,即栈数据类型为 int typedef int Status; typedef struct STACK_NODE { Element_type data; struct STACK_NODE *next; } StackNode, *Stack_pointer; typedef struct { Stack_pointer top; } Stack; Status StackInit(Stack Read more…