⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memsys.c

📁 Data Minig中的FP GROWTH 算法,附带test实例及实验数据分析
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include "memsys.h"#ifdef STORAGE#include "storage.h"#endifMEMSYS* ms_create (int size, int cnt){                                 MEMSYS *ms;                    assert((cnt > 0)                   && (size > 0) && (size % sizeof(void*) == 0));  ms = malloc(sizeof(MEMSYS));    if (!ms) return NULL;           ms->cnt   = cnt;                ms->size  = size /sizeof(void*);  ms->blksz = sizeof(MSBLOCK) +ms->cnt *size;  ms->free  = ms->blocks = NULL;  return ms;                    }  /*--------------------------------------------------------------------*/void ms_delete (MEMSYS *ms){                                 MSBLOCK *block;                 assert(ms);                     while (ms->blocks) {              block = ms->blocks;             ms->blocks = block->succ;       free(block);                  }  free(ms);                     }  /*--------------------------------------------------------------------*/void* ms_alloc (MEMSYS *ms){                                 int     i;                      void    **obj, **tmp;           MSBLOCK *block;                assert(ms);                     obj = ms->free;                 if (!obj) {                       block = (MSBLOCK*)malloc(ms->blksz);    if (!block) return NULL;       block->succ = ms->blocks;       ms->blocks  = block;           ms->free    = obj = (void*)(block +1);    for (i = ms->cnt; --i > 0; ) {      tmp = obj; *tmp = obj += ms->size; }    *obj = NULL;                    obj  = ms->free;              }                               ms->free = *obj;                return (void*)obj;            }  /*--------------------------------------------------------------------*/void ms_free (MEMSYS *ms, void *obj){                               assert(ms && obj);             *(void**)obj = ms->free;       ms->free     = obj;          }  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -