#include
#include
typedef int DataType;
typedef struct qnode{//链式队列的结点
DataType data;//数据部分
struct qnode *next;//指向下一个结点
}LQNode;
typedef struct{
LQNode *front;//队头指针
LQNode *rear;//对尾指针
}...
分类:
其他好文 时间:
2014-07-22 00:32:35
阅读次数:
200
引言:
队列与栈的区别是队列是先进先出的数据结构。为了使得出入队列容易,可以引入队列头指针和队列尾指针。
分析描述:
队列的结点结构。
typedef int QElemType;
typedef struct QNode{
QElemType data;
struct QNode *next;
}QNode, *QueuePtr;...
分类:
其他好文 时间:
2014-07-10 19:28:47
阅读次数:
197
#include<iostream>
usingnamespacestd;
structnode{
intd;
structnode*next;
};//定义结点
node*build1()//头插法构造单链表
{
node*p;//指向新建结点
node*head;//头指针
head=NULL;
p=head;
intx;
cin>>x;
while(x!=-1)
{
p=newnode;
p->d=x;
p-&g..
分类:
其他好文 时间:
2014-07-08 09:06:06
阅读次数:
220
如果在单链表或头指针表示的链表上操作这个比较消耗性能,因为都需要遍历第一个链表,找到an,然后将b1链接到an的后面,时间复杂度是:O(n)。若在尾指针表示的单循环链表上实现,则只需改变指针,无需遍历,时间复杂度是:O(1)
现在看算法实现,需要4个主要步骤,都注释了:
LinkList Connect(LinkList A,LinkList B){
//假设A,B为非空循环链表的尾指针...
分类:
其他好文 时间:
2014-06-29 22:33:08
阅读次数:
319
#include
#include
#include
#include
using namespace std;
struct Node
{
int data;
struct Node* next;
};
struct Node* create_list(int len)
{
if (len <= 0)
return NULL;
struct Node* head;
...
分类:
其他好文 时间:
2014-06-27 23:54:36
阅读次数:
311
如果考虑hashmap直接O(n)的速度, 如果不行,就先排序,两头指针很好推理,关键是 a[beg] +a[end]>sum,意思就是说a[end]太大了,最小的数的都不满足,所以排除a[end] 绝知此事要躬行 #include#includeusing namespace std; bool ...
分类:
其他好文 时间:
2014-06-21 07:38:14
阅读次数:
187
题目大意:
不同的人在不同的队伍里,插入链表的时候如果这个链表里有他的队友,就把它放到最后一个队友的最后,如果没有队友,就把它放到整个链表的最后面。
出链表的时候把第一个人拿出来。
思路分析:
要模拟这个链表就要记录这整个链表中的队伍存在的情况。
所以要再开一个链表的头指针和尾指针,在整个大的链表中再模拟小区域的链表。
然后就是deque部分,也就是注意head的判断以及更新。...
分类:
其他好文 时间:
2014-06-18 12:31:46
阅读次数:
154
一、开辟内存执行的方法流程1.CreateFileMapping
创建一个内存块,指定大小。2.OpenFileMapping打开一个已经存在的内存块做映射。3.MapViewOfFile
获得内存块数据的头指针,需要制定大小。二、操作系统:Windows 7 旗舰版, 32-bit在不同的进程A和...
分类:
其他好文 时间:
2014-06-12 09:14:17
阅读次数:
260
问题:
给定一个链表的头指针,以及一个整数k,要求将链表按每k个为一组,组内进行链表逆置。少于k个的部分不做处理。
分析:
个人觉得问题的重点是熟悉链表的就地逆置操作,就是头插法。其他的考察点如果还有的话,就的细心程度。
实现:
void reverseList(ListNode *&pre, ListNode *head)
{
ListNode *tail = NULL;
w...
分类:
其他好文 时间:
2014-06-10 17:25:45
阅读次数:
305