链表 链表是一种基本的一维离散存储数据结构。相对于数组,它是离散内存的,不能如数组一样通过下标来查询相应地数据,每一个链表节点只能知道它的上一个(双端链表)和它的下一个(单链表,双端链表)节点。C语言通过malloc/free控制内存,C++里通过new/delete,Java则是只有new对象。 ...
分类:
其他好文 时间:
2016-07-31 19:17:34
阅读次数:
232
Description 求两个不超过200位的非负整数的积。 解决方法:先考虑大整数存储结构,数组和链表都可以,因为数组使用不熟练,我先考虑链表,做了6小时才写好...也是醉了。下面简单介绍我的思路: 1、考虑链表的数据结构:先思考得知,链表结点要有pre、next指针,所以是双向链表,要设置头尾节 ...
分类:
其他好文 时间:
2016-06-07 16:21:28
阅读次数:
230
问题描述:输入两个递增的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。...
分类:
编程语言 时间:
2016-05-12 12:12:00
阅读次数:
131
问题描述:给定两个链表的头指针,并且这两个链表都已经有顺序了,将这两个链表合并成一个链表,并且使合并后的链表依然有序。 分析:这个问题有点类似于归并排序中的归并步骤。具体思想如下: 首先比较两个链表的头结点,并将较小的作为合并后链表的头节点,然后移动指针,再比较两个指针的节点,以此类推, 如果其中一 ...
分类:
编程语言 时间:
2016-05-11 19:40:19
阅读次数:
177
//约瑟夫环问题
PSListNodeJosephCircle(PSListNodepHead,intM);
//单链表逆置:两种方法都实现:一、三个指针二、尾插发
voidReverseList(PSListNode*pHead);
//单链表排序:冒泡(优化版本)
voidSortList(PSListNodepHead);
//查找链表的倒数第K个结点
PSListNodeFindLastK..
分类:
其他好文 时间:
2016-05-08 01:18:06
阅读次数:
179
单向链表的创建、输出、删除、 插入的代码以及分析 一、 链表的创建 结构体 用*next指向下一个结构体的地址来连接链表,注意最后一个要指向NULL(即空指针) >[p1] >[p2]... >[pn] >[NULL] head p1->next p2->next pn->next 二、链表的输出 ...
分类:
其他好文 时间:
2016-04-28 21:21:09
阅读次数:
221
#include<iostream>
#include<assert.h>
#include<string>
usingnamespacestd;
structnode
{
intx;
node*next;
node(inta){x=a;}
};
classlink
{
public:
node*head;
link(int*a)
{
intn=5;
head=newnode(a[0]);
node*p=head;
while(--n)
{
node*add=newnod..
分类:
其他好文 时间:
2016-04-22 01:31:58
阅读次数:
272
1双向线性链表
1.1 问题
双向线性链表是采用链式存储的方式存储的线性表。链式存储结构是由一系列结点(链表中每一个元素称为结点)组成,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储当前结点的前驱结点和后继结点地址的指针域,结点是在有数据时动态生成的,是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
1.2 方案
...
分类:
编程语言 时间:
2016-04-21 11:50:04
阅读次数:
260
1、问题描述输入参数nn为正整数,如输入n=5n=5,则按行打印如下的数字:2、问题的理解这个问题是将数字1…n21\dots n^2按照一圈一圈的方式存储好,再按照行的方式对其进行打印。3、解决的方法最简单的方法是利用数组:
声明一个二维数组[n][n]
按照一圈一圈的方式向数组中添加对应数字
再按照一行一行的方式打印
这个方法比较简单,就不给出代码了。4、问题升级有人觉得上述的问题没什么难度,现...
分类:
其他好文 时间:
2016-03-19 18:10:43
阅读次数:
265
问题描述: 有一个单链表,其中可能有一个环,也就是某个节点的next指向的是链表中在它之前的节点,这样在链表的尾部形成一环。? 如何判断一个链表是不是这类链表?? 问题扩展:? 如果链表可能有环呢? 如果需要...
分类:
其他好文 时间:
2015-11-04 13:19:28
阅读次数:
227