数据结构与算法分析--C语言描述 第三章的单链表 很基础的东西.走一遍流程.有人说学编程最简单最笨的方法就是把书上的代码敲一遍.这个我是头文件是照抄的..c源文件自己实现. list.h typedef int ElementType; #ifndef _List_H #define _List_H struct Node; typedef struct Node *PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; Li…
开始学习数据结构,使用的教材是机械工业出版社的<数据结构与算法分析——C语言描述>,计划将书中的ADT用C语言实现一遍,记录于此.下面是第一个最简单的结构——链表. 链表(Linked-List),即最基本的数据结构——线性表的链式存储结构.比起顺序存储,其好处在于空间使用的灵活性,以及插入.删除操作的高效性.下面给出笔者的链表结构C语言实现.其中算法和细节部分定有可优化之处,欢迎大神指正. // LinkedList.h #ifndef _LINKEDLIST_H #define _LINK…
维斯 (作者), 冯舜玺 (译者) <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括.由于<数据结构与算法分析:C语言描述(原书第2版)>选材新颖,方法实用,题例丰富,取舍得当.<数据结构与算法分析:C语言描述(原书第2版)>的目的是培养学生良好的程序设计技巧和熟练的算…
#include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_array(int a[],int len,int max); void print_array(int a[],int n); void main(){ printf("please input two numbers as the array's length and the array's ma…
书籍信息 书名:<数据结构与算法分析-Java语言描述> 原作名:Data Structures and Algorithm Analysis in Java 作者: 韦斯 (Mark Allen Weiss) 内容简介 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计). 随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长.本书把算法分析与最有效率的Java程…
经过ubuntu的gcc验证 一.头文件 que_link.h #ifndef _QUE_LINK_H_ #define _QUE_LINK_H_ struct que_record; typedef struct que_record* que; struct link_node; typedef struct link_node* node; typedef int elementType; int IsFull(que q); int IsEmpty(que q); que creatQu…
表.栈和队列是最简单和最基本的三种数据结构.基本上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,比如栈在程序中总是要间接地用到,不管你在程序中是否做了声明. 本章学习重点: 理解抽象数据类型(ADT)的概念学习如何对表进行有效的操作 熟悉栈ADT及其在实现递归方面的应用 熟悉队列ADT及其在操作系统和算法设计中的应用 ADT 抽象数据类型(abstract data type)是一个操作的集合,是数学的抽象,在ADT中不涉及如何实现操作的集合,这可以看作是模块化设计的扩充.对于每种A…
第三个结构——队列(Queue) 队列与上次的栈相反,是一种先进先出(FIFO)的线性表.写入时只暴露尾部,读取时只暴露头部. 本次只实现了数组形式的队列.原因是链表形式的队列极为简单,只需要实现简单的删除首结点和尾部插入两种操作,在此便不再具体实现. 而对于数组形式的队列,内存单元固定,又不具备像栈一样一端固定的特性,为使数组中的空间可被重复使用,需使得队列的头部随着Dequeue的操作而移动.如果每次Dequeue都将整个队列的内容前移一个单元,将是一个O(n)复杂度的操作,对于删除操作而言…
一.h文件:my_que.h #ifndef _MY_QUE_H_ #define _MY_QUE_H_ struct QueRecord; typedef struct QueRecord* queue; typedef int element_type; int IsEmpty(queue q); int IsFull(queue q); queue creat_que(int max_element); void make_empty(queue q); void enqueue(elem…
一.头文件: #ifndef _STACK_LINK_H_ #define _STACK_LINK_H_ struct stack_record; typedef struct stack_record* stack; typedef int elementType; struct link_node; typedef struct link_node node; int IsEmpty(stack s); int IsFull(stack s); stack creatStack(int ma…