数据结构
文章平均质量分 77
shanlingwei
这个作者很懒,什么都没留下…
展开
-
递归算法详解
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。 许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。但是在阶乘的计算里,递归并没有提供任何优越之处。在菲波那契数列中,它的效率更是低的非常恐怖。...原创 2009-05-03 08:59:20 · 142 阅读 · 0 评论 -
顺序表操作
1.顺序表类型定义 #define ListSize 100 //表空间的大小可根据实际需要而定,这里假设为100 typedef int DataType; //DataType的类型可根据实际情况而定,这里假设为int ...2009-05-05 09:10:46 · 248 阅读 · 0 评论 -
单链表
1、单链表类型描述 typedef char DataType; //假设结点的数据域类型为字符 typedef struct node{ //结点类型定义 DataType data; //结点的数据域...原创 2009-05-05 19:49:44 · 129 阅读 · 0 评论 -
单链表2
3.插入运算(1)思想方法 插入运算是将值为x的新结点插入到表的第i个结点的位置上,即插入到ai-1与ai之间。 具体步骤: (1)找到ai-1存储位置p (2)生成一个数据域为x的新结点*s ...2009-05-06 09:28:43 · 178 阅读 · 0 评论 -
约瑟夫环
约瑟夫环 是一个数学的应用问题: 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。 这个就是约瑟夫环问题的实际场景,有一种是要通过输入n,m,k三个正整数,来求出列的序列。这个问题采用的是典型...原创 2009-05-06 18:52:48 · 72 阅读 · 0 评论 -
双链表
1、双向链表(Double Linked List) 双(向)链表中有两条方向不同的链,即每个结点中除next域存放后继结点地址外,还增加一个指向其直接前趋的指针域prior。注意: ①双链表由头指针head惟一确定的。 ②带头结点的双链表的某些运算变得方...原创 2009-05-06 19:28:35 · 121 阅读 · 0 评论 -
栈操作
一、顺序栈 栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。 1、 顺序栈的类型定义 #define StackSize 100 //假定预分配的栈空间最多为100个元素 typedef char DataType;//假定栈元素的数据类型为字符 ...原创 2009-05-07 09:23:54 · 297 阅读 · 1 评论 -
链队列
1、 链队列的定义 队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。typedef struct queuenode{ DataType data struct queuenode *next }QueueNode ; ...原创 2009-05-07 09:52:51 · 118 阅读 · 0 评论