码迷,mamicode.com
首页 >  
搜索关键字:头指针    ( 482个结果
【堆】bzoj1293 [SCOI2009]生日礼物
考虑poj3320尺取法的做法,与此题基本一样,但是此题的 位置 的范围到2^31 尺取法不可。将每种珠子所在的位置排序。每种珠子要维护一个指针,指到已经用到这个种类的哪个珠子。所以尺取法用堆优化,每次从堆中取出最小的,相当于尺取法的头指针向后移动。然后从每种珠子里向后取出一个位置(指针++)(已经...
分类:其他好文   时间:2014-09-13 17:02:25    阅读次数:234
Data Structure学习(一)--- 基本概念
(一)顺序表1.基本概念: 首元结点:存储第一个数据元素的结点。 头结点:在链表的首元结点之前附设一个结点,便于对首元结点操作。 头指针:指向链表中的第一个结点。 插入/删除:在顺序表中插入或删除一个元素,需要平均移动一半个元素,具体移动的元素个数与元素位置有关。 在单链表中,除了首元结点...
分类:其他好文   时间:2014-09-10 15:35:30    阅读次数:259
循环队列(循环数组)中元素个数的计算
队列头指针为front,队列尾指针为rear(指向队尾元素),after_rear为队尾元素的后一位置(按顺时针方向),队列容量为maxsize 如果用 front == rear 来表示队列为空,也就是说front和rear指向同一个位置,那么: 队列满时:(rear+1) mod maxsize...
分类:其他好文   时间:2014-09-04 22:07:50    阅读次数:513
简单链表-C语言复习
实现一个基本的链表,包括在链表后添加数据节点和输出链表i所有数据的功能 1 #include 2 #include 3 4 typedef struct node 5 { 6 int data; 7 struct node *link; 8 }NODE; 9 10 //定义头指针1...
分类:编程语言   时间:2014-09-01 22:33:13    阅读次数:319
给定一个链表的头指针,要求只遍历一次,将单链表中的元素顺序反转过来
经典题目,代码如下: 1 #include 2 #include 3 using namespace std; 4 struct ListNode { 5 int m_iData; 6 ListNode* m_pNext; 7 }; 8 ListNode* Reverse(Lis...
分类:其他好文   时间:2014-09-01 19:10:03    阅读次数:257
循环队列假溢出
循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。因此,无法通过条件front==rear来判别队列是"空"还是"满"。解决这个问题的方法至少有三种:① 另设一布尔变量以区别队列的空和满;② 少用一个元素的空间。约定入队前,测试尾指针在循环意义下...
分类:其他好文   时间:2014-08-30 21:40:40    阅读次数:419
判断单链表是否有环相关问题(转载加总结)
给定一个单链表,只给出头指针h:1、如何判断是否存在环?2、如何知道环的长度?3、如何找出环的连接点在哪里?4、带环链表的长度是多少?解法:1、对于问题1,使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出...
分类:其他好文   时间:2014-08-17 11:34:22    阅读次数:236
重刷数据结构,小题大做,——难道非要头结点吗?
按照书上的说法,引入头结点有一下两个优点: 由于开始结点的位置被存放在头结点的指针域中,所以在链表的第一个位置上的操作和在表的其他位置上的操作一致,无须进行特殊处理。 无论链表是否为空,其头指针是指向头结点的非空指针,因此空表和非空表的处理也就一致了。 你可能会疑惑:难道非得要头指针吗?难道没有头结点,插入、删除、空表的处理就不一致了吗?(貌似有一些同学和我有同样的疑问)...
分类:其他好文   时间:2014-08-16 22:33:51    阅读次数:300
【编程题目】在 O(1)时间内删除链表结点
60.在 O(1)时间内删除链表结点(链表、算法)。题目:给定链表的头指针和一个结点指针,在 O(1)时间删除该结点。链表结点的定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};函数的声明如下:void DeleteNode(ListNode*....
分类:其他好文   时间:2014-08-14 15:56:18    阅读次数:148
链表节点的增加和删除
struct ListNode { int m_nValue; ListNode* m_pNext; }; //增加节点 /*第一个参数是一个指向指针的指针。当我们往一个空链表中插入一个节点时,新插入的节点 就是链表的头指针。由于此时会改动头指针,因此必须把pHead参数设为指向指针的指针*/ void addToTail(ListNode** pHead, int value) ...
分类:其他好文   时间:2014-08-11 15:00:22    阅读次数:307
482条   上一页 1 ... 43 44 45 46 47 ... 49 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!