文档详情

数据结构与算法分析-C语言描述.pdf

发布:2019-03-25约9.68万字共102页下载文档
文本预览下载声明
目 录 前言 链表 - 数据结构 双向链表 - 数据结构 二叉树 - 数据结构 树 - 数据结构 (二叉查找树、AVL树 ) 排序 - 数据结构 表、栈、队列 - 数据结构 散列 - 数据结构 (分离链接法、开放定址法 ) 优先队列 - 数据结构 (二叉堆 ) 红黑树理解 - 数据结构 拓扑排序 Prim算法 Kruskal算法 本文档使用 看云 构建 - 2 - 前言 前言 原文出处 :数据结构与算法分析-C语言描述 作者 :u012796139 本系列文章经作者授权在看云整理发布 ,未经作者允许 ,请勿转载 ! 数据结构与算法分析-C语言描述 学习 《数据结构与算法分析-C语言描述》时写的一些代码和记录。 本文档使用 看云 构建 - 3 - 链表 - 数据结构 链表 - 数据结构 关于头结点 ,一般链表都会有头结点 ,他会有几个好处 : 1. 开始起始点的位置放在头结点的指针域中 ,这样在头结点的数据域可以存放一些其他数 据 ,比如链表长度等。 2. 并且链表的第一个位置上的操作和其他位置的操作是一样的 ,这样空表和非空表的操作是 一样的。 // 链表数据的定义 ,每个节点存放一个字符 typedef char datatype; typedef struct node { datatype data; struct node *next; }linknode; typedef linknode *linklist; 建立链表 // 头插法建立单链表 linklist CreatList(void) { datatype ch; linklist head; linknode *p; head NULL; while((ch getchar()) ! \n) { p (linknode *)malloc(sizeof(linknode)); if(p NULL) { printf(error: no space to get.\n); return NULL; } p-data ch; p-next head; head p; } return head; } 本文档使用 看云 构建 - 4 - 链表 - 数据结构 // 尾插法建立单链表,但是链表不带头结点 linklist CreatLinst2(void) { datatype ch; linklist head; linknode *p, *r; head NULL; r NULL; while((ch getchar()) ! \n) { p (linknode *)malloc(sizeof(linknode)); p-data ch; if(head NULL) head p; else r-next p; r p; } if(r ! NULL) r-next NULL; return head; } // 尾插法建立单链表 ,带头结点 ,头结点暂时没有存放什么东西
显示全部
相似文档