📄 linkedblocklist.cpp
字号:
// LinkedBlockList.cpp: implementation of the LinkedBlockList class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GraphCut.h"
#include <stdio.h>
#include <stdlib.h>
#include "LinkedBlockList.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
LinkedBlockList::LinkedBlockList()
{
m_head = 0; m_head_block_size = GCLL_BLOCK_SIZE;
}
LinkedBlockList::~LinkedBlockList()
{
LLBlock *tmp;
while ( m_head != 0 )
{
tmp = m_head;
m_head = m_head->m_next;
delete tmp;
}
}
/*********************************************************************/
void LinkedBlockList::addFront(ListType item) {
if ( m_head_block_size == GCLL_BLOCK_SIZE )
{
LLBlock *tmp = (LLBlock *) new LLBlock;
if ( !tmp ) {printf("\nOut of memory");exit(1);}
tmp -> m_next = m_head;
m_head = tmp;
m_head_block_size = 0;
}
m_head ->m_item[m_head_block_size] = item;
m_head_block_size++;
}
/*********************************************************************/
ListType LinkedBlockList::next()
{
ListType toReturn = m_cursor -> m_item[m_cursor_ind];
m_cursor_ind++;
if ( m_cursor == m_head && m_cursor_ind >= m_head_block_size )
{
m_cursor = m_cursor ->m_next;
m_cursor_ind = 0;
}
else if ( m_cursor_ind == GCLL_BLOCK_SIZE )
{
m_cursor = m_cursor ->m_next;
m_cursor_ind = 0;
}
return(toReturn);
}
/*********************************************************************/
bool LinkedBlockList::hasNext()
{
if ( m_cursor != 0 ) return (true);
else return(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -