例一:求表长
设一个移动工作指针p和一个计数器j,初始时p=L->next,J=0,若p非空,则计数器加1,并将指针下移一个位置,直到达链表尾,算法描述如下:int LinkListLen(LinkList L)
{
//求带头结点的单链表L的长度
LNode *p
int j=0;
p=L->next;//p指向第一个结点
while(p){j++;p=p->ne...
分类:
其他好文 时间:
2015-08-02 20:09:50
阅读次数:
191
题目: 输入一个链表,输出该链表中倒数第k哥结点。
为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。
例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6.这个链表的倒数第3个结点是值为4的结点
为了得到第K个结点,很自然的想法是先走到链表的尾端,再从尾端回溯K步。可是我们从链表结点的定义可疑看出本题中的链表 是单向链表,单向链表的结点只有从...
分类:
编程语言 时间:
2015-08-01 17:30:16
阅读次数:
123
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。
解决与链表相关的问题总是有大量的指针操作,而指针操作的代码总是容易出错的。很多的面试官喜欢出链表相关的问题,就是想通过指针操作来考察应聘者的编码功底。为了避免出错,我们最好先进行全面的分析。在实际软件开发周期中,设计的时间通常不会比编码的时间短。在面试的时候我们不要急于动手写代码,而是一开始仔细分析和涉及,这将会给面...
分类:
编程语言 时间:
2015-08-01 17:19:10
阅读次数:
150
//CycList:循环单链表
#include
#include
typedef int DataType;
typedef struct Node{
DataType data;
struct Node *next;
}ListNode,*LinkList;
//创建一个不带头结点的循环单链表
LinkList CreateCycList(int n){
DataType e;
Li...
分类:
其他好文 时间:
2015-08-01 01:11:17
阅读次数:
172
一.链表学习数据结构链表的时候,就有区分 带头结点的链表和不带头结点的链表当时写完带头结点的链表的基本操作算法后,又写了一遍不带头结点的链表的基本操作。发现是否带头结点的区别主要体现在2个操作的算法上:插入和删除不带头结点的链表的插入和删除操作因为涉及对第一个结点插入删除,会改变头指针的值,需要对第...
分类:
其他好文 时间:
2015-07-26 11:04:59
阅读次数:
192
各位看官们,大家好,上一回中咱们说的是队列及其特点,并且通过例子来说明队列,这一回咱们继续说
队列,不过咱们说的是链式存储形式的队列,这与上一回中顺序存储形式的队列不一样。闲话休提,言归
正转。让我们一起talk C栗子吧!
在代码中通过链表来实现队列的链式存储。而且定义了一个头结点,头结点主要用来保存队列的头部和尾
部信息,以及队列的长度信息。我们对队列的操作,本质上是对链...
分类:
编程语言 时间:
2015-07-26 09:46:51
阅读次数:
123
vector> levelOrder(TreeNode* root) { vector> levelOrderTraversal; function traversal; traversal = [&levelOrderTraversal, &traversal](Tree...
分类:
编程语言 时间:
2015-07-26 00:16:16
阅读次数:
134
题目的意思,如题。很容易明白。
解决的方法就是拓扑排序,就可以很容易的解决了。
每输入一对选手,判断两个选手是否出现过,没有出现过,新建一个头结点,加入到邻接表中,更新结点的入度。
最后判断是否存在一个结点的入度为0,有,则Yes,否则No。
我用的是STL中的list容器来创建的邻接表。
下面的是 AC的代码:
#include
#include
#include
using ...
分类:
编程语言 时间:
2015-07-23 23:43:47
阅读次数:
291
#ifndef _SLIST_H
#define _SLIST_H#ifdef __cplusplus
extern "C" {
#endif /*******1. 不带头结点的单链表*****/
/*****
*@链表结点结构定义
*@ m_data:数据
*@m_pNext:指向下一结点的指针
***/
struct listNode...
分类:
其他好文 时间:
2015-07-22 22:48:37
阅读次数:
149
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历的序列{4,7,2,1,5,3,8,6},则重建出下图所示的二叉树并输出它的头结点。分析:前序遍历的第一个元素就是根...
分类:
其他好文 时间:
2015-07-21 10:30:03
阅读次数:
126