数据结构。
文章平均质量分 74
okoney
这个作者很懒,什么都没留下…
展开
-
双链表基本操作。
双链表 (double link) 最近学习了链表。相比较单链表的只有一个后继结点的小清新风格而言。双链表中前驱结点和后继结点就稍显麻烦。 本人在学习双链表的过程中就被满天飞的前驱后继指针弄的一个头两个大。 不过等过了这段磨合期之后,又慢慢觉得这风骚的前驱后继指针可爱极了。 特别是在双链表的一些基本操作里,只需要申明一个头结点的“影分身”指针就可以根据前驱亦或后继在链表里畅行无阻了。原创 2012-12-10 11:50:37 · 1145 阅读 · 1 评论 -
双链表的插入排序
/* 总结: 学习上没有天赋,又沉不住气。经常敲着敲着代码然后几个指针上来一通乱指之后自己都搞不清处状况了。 * 所以我现在只能慢慢摸索、尝试,并用一些我自己好理解的注释来帮住自己来理解。 * 作为一个大一大二都在无所事事的学渣渣来说 想稍微弄明白一些 C语言 方面的知识真的不是一件容易的事。 * 特别是每当同学们嗨嗨皮皮的就搞定的代码我却需要琢磨好一阵,那种失落感还真让人感伤。原创 2012-12-10 12:05:50 · 3468 阅读 · 1 评论 -
栈 的基本操作。
#include #include typedef struct _Node { int data; struct _Node *next; }Node,*pNode; typedef struct _Stack { struct _Node *top; struct _Node *bottom; unsigned in原创 2012-12-14 13:11:28 · 551 阅读 · 0 评论 -
用 栈结构 实现反序读文件。
#ifndef HEAD_H_ #define HEAD_H_ #include #include #include #define SIZE 1024 typedef struct _Node //声明结点模板。 { char buff [SIZE]; //结点值 类型为字符串。 struct _Node *n原创 2012-12-14 14:39:48 · 705 阅读 · 0 评论 -
队列 基本操作。
#include #include typedef struct Node_ { int data; struct Node_ *next; }Node,*pNode; typedef struct Queue_ { struct Node_ *head; struct Node_ *tail; unsigned i原创 2012-12-14 13:16:22 · 383 阅读 · 0 评论 -
快速排序的递归实现。 分治法。
快速排序。 快速排序虽然是一种不稳定的排序方法。(如果排序前有两个相等的数,那么快速排序之后这两个数的相对位置有可能发生改变。) 但是它有其他内排序无法企及的平均性能。 所以对待排序记录个数很大且原始记录随机排列的情况很是适用。 快速排序一般使用分治法来实现。即 先确定一个基准量,然后从尾巴开始比较元素数值和基准量的大小,一旦遇到数值小于基准量的元素就交换位置并从头开始比较......原创 2012-12-15 21:05:42 · 2691 阅读 · 0 评论 -
直接插入排序。数组下标实现。
直接插入排序。 直接插入排序是所有排序中最简单的一种排序。在处理大数据量或者待排序列太无序的时候效率就变很低。 但是在待排序记录较少时直接插入排序凭借其简单易实现的优势又成功逆袭,威风八面。 直接插入排序的基本思想是将数组分为有序区和无序区,将无序区的元素依次和有序区的元素进行比较,然后插入到首个比其值小的元素后面。 为防止数组下标越界 常将数组首元素设为哨兵。 下面就是这“欺短原创 2012-12-16 21:10:20 · 1373 阅读 · 0 评论