码迷,mamicode.com
首页 >  
搜索关键字:头结点    ( 1033个结果
【编程题目】从尾到头输出链表(链表)☆
58.从尾到头输出链表(链表)。题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};我的思路:用一个数组存起来已有的数字,再反过来输出。缺点是数组大小是确定的 链表长度不能超过数....
分类:其他好文   时间:2014-08-09 18:39:00    阅读次数:258
双向链表
1、引言 双向链表原理和单链表差不多,就是操作相对繁琐一些,简单画了几个图,把思想弄清楚就好。2、正文 这里介绍一下插入和删除的原理,相信这两个操作搞清楚的话,其他操作也没什么问题。2.1插入节点:大致分为两种情况,第一种是向头结点或者尾节点插入节点,第二种则是在中间插入。 在头节点...
分类:其他好文   时间:2014-08-09 15:48:18    阅读次数:209
链表讲解和基本操作练习附代码
以下都是单链表的基本操作,我都写了一遍,链表时间长不写一定会陌生,留给自己以后忘了看一眼,顺便给想学习链表的同学一点提示吧 首先先写头文件head.h,这里都是我定义好的函数分别有 这里的所有例子都是有头结点的链表,都是单链表操作 1)头插发建表 2)尾插法建表 3)打印链表 4)对链表赋值的时候进行插入排序 5)将链表翻转 6)找到链表倒数第n个元素 7)将两个链表连在一起 8)使单链表变成环链表 9)判断链表是否有环 10)将现有的链表排序进行插入排序(与4)不同,4)是在建立链表的时候进行排序...
分类:其他好文   时间:2014-08-09 11:40:27    阅读次数:399
队列(二)——队列的链表实现方式
1.队列的单向链表的实现方法 return只可以返回一个值,单向循环链表来实现队列的时候可以只保留一个指针,因为保留rear指针能够很方便的表示出front指针,所以保留rear指针。 另外由于链表的第一个结点处理比较特殊,所以在初始化的时候需要单独处理。链表实现的队列思想也是第一个单元作为头结点,不存放数据,rear指针指向的总是尾结点(在循环链表中也就是头结点的上一个结点)。 2.实现方...
分类:其他好文   时间:2014-08-04 21:47:48    阅读次数:233
Unique Binary Search Trees
问题:n个结点总共有多少个二叉搜索树分析:n=1,sum1=1 n=2,sum2=2; n=3,sum3=2(头结点为1)+1(头结点为2)+2(头结点为3) n=4,sum4=5(头结点为1,sum3)+2(头结点为2,sum1*sum2)+2(头结点为3,sum2*sum1)+...
分类:其他好文   时间:2014-08-04 13:53:47    阅读次数:193
Remove Duplicates from Sorted List
问题:将有序链表中的重复元素删除分析:由于有序,所以p结点是否重复只需要和它的前一节点比较是否相等就可以了,我们可以定义一个helper新头结点链表 将p结点与新链表的尾结点比较,若不相等则加入新链表中。class Solution{public: ListNode *deleteDup...
分类:其他好文   时间:2014-08-02 17:47:33    阅读次数:210
双向链表实现队列
双向链表的结点包含前驱指针和后继指针,队列入队操作是在双向链表尾部添加元素,队列的出队操作是把双向链表的头结点删除,判断队列是否为空只要判断双向链表的头指针是否指向了NULL即可。 # include # include using namespace std; struct queueNode { int val; queueNode *pre; queueNode *next;...
分类:其他好文   时间:2014-08-02 12:55:03    阅读次数:193
链表队列的实现
队列也是数据结构中比较重要的一种,和栈相反的是,队列是先进先出的,先进队列的可以先出队,跟平时我们排队是一样的。在允许多通道程序运行的计算机系统中,同时几个作业运行。凡是申请输出的作业都从队尾进入队列。 现在用链表实现队列,先定义一个链表结点: typedef struct QNode { int data; QNode *next; }QNode,*QueuePtr;给队列定义一个头结点...
分类:其他好文   时间:2014-07-27 11:33:22    阅读次数:212
给定链表的头指针和一个结点指针,在O(1)时间删除该结点
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。具体思路:把头结点的数据直接copy到要删除的结点处,然后头指针向后移动一个结点,再free掉原来的头指针指向的结点,这样等于把要删除的结点删除了。当链表只有一个结点或者要删除的结点是头结点或尾结点时,这种方法也是成立的,所以不需要做特...
分类:其他好文   时间:2014-07-25 13:54:31    阅读次数:204
C/C++链表操作(面试)
1.为了反转这个单链表,我们先让头结点的next域指向结点2,再让结点1的next域指向结点3,最后将结点2的next域指向结点1,就完成了第一次交换,顺序就变成了Header-结点2-结点1-结点3-结点4-NULL,然后进行相同的交换将结点3移动到结点2的前面,然后再将结点4移动到结点3的前面就...
分类:编程语言   时间:2014-07-24 21:37:32    阅读次数:221
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!