数据结构与算法是语言学习中的重点与难点。之前没学好,现在特地将严蔚敏的《数据结构》C语言版中的伪代码,予以实现,算作是自己再学习一次。同时希望能帮助到那些刚接触数据结构,对书中内容还不甚理解不知如何动手实现的童鞋。本篇实现的是线性链表,实现算法2.12...
分类:
编程语言 时间:
2014-08-13 22:29:55
阅读次数:
467
单链表是一种递归结构,可以将单链表看作特殊的二叉树(我把它叫做一叉树)单链表的定义:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List...
分类:
其他好文 时间:
2014-08-13 18:37:17
阅读次数:
213
这个题敲了好久,比较纠结就是用链表加map实现,第一次是用单链表加一个指针标记,提交了几次总是出现runtime error。应该是内存访问出现了问题,原因在指针上,所以我就采用了双链表,修改了几个边界问题终于过了。需要考虑的边界有,catche容量为0,1的情况时head和tail的处理。链表.....
分类:
其他好文 时间:
2014-08-12 13:13:34
阅读次数:
220
//单链表的合并
//链表合并
//两个链表必须是有序的
#define Maxsize 5
typedef int elemtype;
typedef struct linklist
{
elemtype data;
struct linklist *next;
}Linklist;
//建立链表1
Linklist *CreateList1 ()
...
分类:
其他好文 时间:
2014-08-11 21:25:52
阅读次数:
346
//逆置单链表,原地操作,只需要遍历一遍
private?ListNode?reverse(ListNode?head)
{
????ListNode?pre?=?null;
????ListNode?cur?=?head;
????while(cur!=null)
????{
???????...
分类:
其他好文 时间:
2014-08-10 13:12:50
阅读次数:
284
本文利用经典的魔术师发牌问题与拉丁法阵分别讲解了循环链表与单向链表的使用,作为算法中的经典,对于链表的学习和理解都有着很大的帮助,不妨一看。
魔术师发牌问题
问题描述:
魔术师利用一副牌中的13张黑牌,预先将他们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?现场演示。”魔术师将最上面的那张牌数为1,把他翻...
分类:
其他好文 时间:
2014-08-10 13:07:50
阅读次数:
297
1、引言 双向链表原理和单链表差不多,就是操作相对繁琐一些,简单画了几个图,把思想弄清楚就好。2、正文 这里介绍一下插入和删除的原理,相信这两个操作搞清楚的话,其他操作也没什么问题。2.1插入节点:大致分为两种情况,第一种是向头结点或者尾节点插入节点,第二种则是在中间插入。 在头节点...
分类:
其他好文 时间:
2014-08-09 15:48:18
阅读次数:
209
1、引言 工作一年了,感觉越来越懒散,把很多基础性的东西都慢慢遗忘了,最近想趁着还没忘完,回顾一下,整理了点笔记,分享一下。 如有错的地方,欢迎大家怒喷。2、学习 我们就从最简单的链表开始吧。 链表其实跟数组有点像,都是一串相同类型的元素的集合,最大的不同点在于:数组是一片连...
分类:
其他好文 时间:
2014-08-09 15:45:08
阅读次数:
178
以下都是单链表的基本操作,我都写了一遍,链表时间长不写一定会陌生,留给自己以后忘了看一眼,顺便给想学习链表的同学一点提示吧
首先先写头文件head.h,这里都是我定义好的函数分别有
这里的所有例子都是有头结点的链表,都是单链表操作
1)头插发建表 2)尾插法建表 3)打印链表 4)对链表赋值的时候进行插入排序 5)将链表翻转 6)找到链表倒数第n个元素 7)将两个链表连在一起 8)使单链表变成环链表
9)判断链表是否有环 10)将现有的链表排序进行插入排序(与4)不同,4)是在建立链表的时候进行排序...
分类:
其他好文 时间:
2014-08-09 11:40:27
阅读次数:
399