![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
xiaodu1997
A foolish man
展开
-
栈的数组实现(C语言版)
这次是用数组来实现栈,实现思路和方法都比较简单,就不多解释了,下面直接上代码:头文件:#ifndef STACKCURSOR_H_INCLUDED#define STACKCURSOR_H_INCLUDEDtypedef int ElementType;typedef struct StackRecord *Stack;int Isempty(Stack S);int IsFull(Sta原创 2016-10-23 16:05:11 · 543 阅读 · 0 评论 -
散列表(平方探测法解决冲突)
用平方探测法来解决冲突的实现头文件:#ifndef HASHQUAD_H_INCLUDED#define HASHQUAD_H_INCLUDEDtypedef unsigned int Index;typedef Index Position;typedef int ElementType;struct HashTbl;typedef struct HashTbl *HashTable;Has原创 2016-12-14 17:02:33 · 2968 阅读 · 0 评论 -
AVL树的简单实现
AVL树是在二叉查找树的基础上加了一个平衡条件,目的是为了防止二叉查找树在某一边的深度过大而使效率降低 AVL树的关键是两个单旋转:左旋转和右旋转 双旋转也就是这两个旋转的组合旋转的话 用图是最好解释的 下面用从别人那里盗来的图来说明下吧 想搞明白的话,自己照着这个图里面的画一画就差不多了那么下面我就上代码了:头文件:#ifndef AVLTREE_H_INCLUDED#define A原创 2016-11-27 21:07:32 · 432 阅读 · 1 评论 -
Hash 散列表(分离链接法解决冲突)
分离链接法的思路是将散列到同一个值的所以元素保留到一个表中。头文件:#ifndef HASHSEP_H_INCLUDED#define HASHSEP_H_INCLUDEDstruct ListNode;typedef struct ListNode *Position;struct HashTbl;typedef struct HashTbl *HashTable;typedef int原创 2016-12-04 17:35:23 · 752 阅读 · 0 评论 -
链表实践—多项式ADT(数组实现)
这个ADT可以存储多项式系数,并进行相加,相乘等计算。 这个是用数组实现的版本。头文件代码:#ifndef POLYNOMIAL_H_INCLUDED#define POLYNOMIAL_H_INCLUDED#define MaxDegree 100struct P{ int CoeffArray[MaxDegree + 1]; int HighPower;};type原创 2016-10-08 17:41:22 · 1792 阅读 · 1 评论 -
Josephus问题的一种解法(链表实现)
这里并不是原始的Josephus问题,而是其“通用版”,而历史上的那个只是个特殊情况 下面直接给代码:#include <stdio.h>#include <stdlib.h>struct People;typedef struct People *PtrToPeople;struct People{ int Position; PtrToPeople Next;};原创 2016-10-30 15:38:36 · 339 阅读 · 0 评论 -
链表的简单实现(C语言版)
链表是一种简单的数据结构,其插入和删除的效率比较高链表定义(头文件):#ifndef NODE_H_INCLUDED#define NODE_H_INCLUDEDstruct Node;typedef struct Node * PtrToNode;typedef PtrToNode List;typedef PtrToNode Position;typedef int ElementTy原创 2016-10-06 23:29:59 · 2783 阅读 · 3 评论 -
链表-游标实现(C语言版)
如果用C/C++写链表的话,用指针会比较方便,但很多语言都没有指针,那么怎么实现比较好呢?游标是个不错的选择。在用指针实现的链表中,有这样两个特点: 1.数据存在一组结构体中,并且每个结构体都有指向下一个结构体的指针。 2.一个新的结构体可以通过malloc获取内存,也可以用free来释放内存。游标法也得满足这两个条件。满足条件1比较简单,用一个全局的结构体数组就行了;满足条件2原创 2016-10-16 14:59:23 · 2308 阅读 · 0 评论 -
队列的数组实现(C语言描述)
队列也是一种简单却很有用的数据结构,其特点是先进先出,基本操作是enqueue(入列)和dequeue(出列) 下面给出数组实现的代码:#ifndef QUEUE_H_INCLUDED#define QUEUE_H_INCLUDEDstruct QueueRecord;typedef struct QueueRecord * Queue;typedef double ElementType;原创 2016-10-25 16:19:11 · 4320 阅读 · 0 评论 -
优先队列--二叉堆实现
二叉堆### 二叉堆简介 二叉堆是优先队列的一种实现方式 同二叉查找树一样,二叉堆也有结构性和堆序性#### 结构性 堆是一棵除底层外完全被填满的树#### 堆序性 使操作被快速执行的性质是堆序性。在这里,我们想实现的是快速找出最小值(最大值),因此最小值(最大值)应该在根上。 所以我们可以得出一个堆序性:在堆中,对于每一个节点X,X的父亲的值应该小于等于(大于等于)X的值。 如果原创 2017-01-10 17:57:56 · 407 阅读 · 0 评论