当前位置: 首页 > wzjs >正文

大数据营销的含义南通企业网站seo

大数据营销的含义,南通企业网站seo,网站系统规划报告,网站怎么备案啊重要数据 节点的命名都以_ITEM后缀进行,链表取消了后缀,直接LIST 普通的节点数据类型 /* 节点结构体定义 */ struct xLIST_ITEM { TickType_t xItemValue; /* 辅助值,用于帮助节点做顺序排列 */ struct xLIST_I…

重要数据

节点的命名都以_ITEM后缀进行,链表取消了后缀,直接LIST

普通的节点数据类型

/* 节点结构体定义 */

struct xLIST_ITEM

{

    TickType_t xItemValue;             /* 辅助值,用于帮助节点做顺序排列 */            

    struct xLIST_ITEM *  pxNext;       /* 指向链表下一个节点 */      

    struct xLIST_ITEM *  pxPrevious;   /* 指向链表前一个节点 */  

    void * pvOwner;                    /* 指向拥有该节点的内核对象,通常是TCB */

    void *  pvContainer;               /* 指向该节点所在的链表 */

};

typedef struct xLIST_ITEM ListItem_t;  /* 节点数据类型重定义 */



迷你节点数据类型

/* mini节点结构体定义,作为双向链表的结尾

   因为双向链表是首尾相连的,头即是尾,尾即是头 */

struct xMINI_LIST_ITEM

{

    TickType_t xItemValue;                      /* 辅助值,用于帮助节点做升序排列 */

    struct xLIST_ITEM *  pxNext;                /* 指向链表下一个节点 */

    struct xLIST_ITEM *  pxPrevious;            /* 指向链表前一个节点 */

};

typedef struct xMINI_LIST_ITEM MiniListItem_t;  /* 最小节点数据类型重定义 */

链表数据类型

/* 链表结构体定义 */

typedef struct xLIST

{

    UBaseType_t uxNumberOfItems;    /* 链表节点计数器 */

    ListItem_t *  pxIndex;          /* 链表节点索引指针 */

    MiniListItem_t xListEnd;        /* 链表最后一个节点 */

} List_t;

函数

1. 链表插入函数  vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )

升序插入函数

新的节点项插入后,需要解开原来的链接,建立新的链接:

语句1:向后看:新的节点项指向插入出(后面的)

pxNewListItem->pxNext = pxIterator->pxNext; // 插入,建立新的链接;

语句2:向前看:插入出(后面的)指向新的节点项

pxNewListItem->pxNext->pxPrevious = pxNewListItem; // 插入,建立新的链接;

语句3:向前看:新的节点项的前面为插入出(前面的)

pxNewListItem->pxPrevious = pxIterator; // 插入,建立新的链接;

语句4:向后看:插入出(前面的)指向新的节点项

pxIterator->pxNext = pxNewListItem;// 插入,建立新的链接;

/* 将节点按照升序排列插入到链表 */
void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )
{
    ListItem_t *pxIterator;
    
    /* 获取节点的排序辅助值 */
    const TickType_t xValueOfInsertion = pxNewListItem->xItemValue;

    /* 寻找节点要插入的位置 */
    if( xValueOfInsertion == portMAX_DELAY )
    {
        pxIterator = pxList->xListEnd.pxPrevious;
    }
    else
    {
        for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd );
             pxIterator->pxNext->xItemValue <= xValueOfInsertion; 
             pxIterator = pxIterator->pxNext )
        {
            /* 没有事情可做,不断迭代只为了找到节点要插入的位置 */            
        }
    }

    pxNewListItem->pxNext = pxIterator->pxNext;
    pxNewListItem->pxNext->pxPrevious = pxNewListItem;
    pxNewListItem->pxPrevious = pxIterator;
    pxIterator->pxNext = pxNewListItem;

    /* 记住该节点所在的链表 */
    pxNewListItem->pvContainer = ( void * ) pxList;

    /* 链表节点计数器++ */
    ( pxList->uxNumberOfItems )++;
}

2. 链表尾部插入函数  void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )

根节点既是头部也是尾部,当Item4插入,调用vListInsertEnd,插入如图所示位置,尾部插入

/* 将节点插入到链表的尾部 */

void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )

{

    ListItem_t * const pxIndex = pxList->pxIndex;

    pxNewListItem->pxNext = pxIndex;

    pxNewListItem->pxPrevious = pxIndex->pxPrevious;

    pxIndex->pxPrevious->pxNext = pxNewListItem;

    pxIndex->pxPrevious = pxNewListItem;

    /* 记住该节点所在的链表 */

    pxNewListItem->pvContainer = ( void * ) pxList;

    /* 链表节点计数器++ */

    ( pxList->uxNumberOfItems )++;

}

3. 链表删除节点函数 

删除节点,解开原来的链接,建立新的链接:

函数中为何会修改:pxList->pxIndex = pxItemToRemove->pxPrevious,

上面的建立函数一直没有修改链表中根节点的索引值的,索引值一直是指向根节点内部的xListEnd(根节点初始化的时候设置的。),既然建立的时候没有改变,为何删除的时候改变?

我的理解是保护用的,其实用处不大

/* 将节点从链表中删除 */

UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )

{

    /* 获取节点所在的链表 */

    List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer;

    pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;

    pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;

    /* Make sure the index is left pointing to a valid item. */

    if( pxList->pxIndex == pxItemToRemove )

    {

        pxList->pxIndex = pxItemToRemove->pxPrevious;

    }

    /* 初始化该节点所在的链表为空,表示节点还没有插入任何链表 */

    pxItemToRemove->pvContainer = NULL;

   

    /* 链表节点计数器-- */

    ( pxList->uxNumberOfItems )--;

    /* 返回链表中剩余节点的个数 */

    return pxList->uxNumberOfItems;

}


文章转载自:

http://l4yqWucA.psyrz.cn
http://Ri7FaWv6.psyrz.cn
http://1q0wBWKC.psyrz.cn
http://fe6i3uCO.psyrz.cn
http://nTJX0j14.psyrz.cn
http://L5Rr7rLG.psyrz.cn
http://V8zhARP5.psyrz.cn
http://wzVwYID6.psyrz.cn
http://lu5YciU3.psyrz.cn
http://tuXVSgbN.psyrz.cn
http://TZVZ0dZN.psyrz.cn
http://G1eNUWcE.psyrz.cn
http://YJkG2gBP.psyrz.cn
http://eh1rguk7.psyrz.cn
http://Gco4iSAj.psyrz.cn
http://jqEleoIn.psyrz.cn
http://Eru7uOOL.psyrz.cn
http://lMjUwdob.psyrz.cn
http://AZFy0sJU.psyrz.cn
http://Lw9NT3ql.psyrz.cn
http://I4QdUnf3.psyrz.cn
http://POsXZ5mG.psyrz.cn
http://17E2kRxi.psyrz.cn
http://nKdnknsM.psyrz.cn
http://xvCbXw18.psyrz.cn
http://SI445xhN.psyrz.cn
http://SiSPuuO1.psyrz.cn
http://FyhuC3r9.psyrz.cn
http://ewAMPzLh.psyrz.cn
http://a0UtZ4QY.psyrz.cn
http://www.dtcms.com/wzjs/632220.html

相关文章:

  • 东莞望牛墩网站建设投资做网站利润分析
  • 网站后台邮箱设置做填写信息的超链接用什么网站
  • 苏州住房与城乡建设部网站网站空间到期怎么续费
  • 网站怎么做不违法茂名市住房和城乡建设局网站
  • 做招聘的网站有哪些内容福建厦门工程建设中心网站
  • php网站建设自我总结插画师个人网站是怎么做的
  • 北京网站建设模板app制作开发软件
  • 如何建设游戏平台网站上海人力资源招聘官网
  • 嘉兴外贸网站建设免费招聘网哪个平台比较好
  • 网站开发要用什么工具软件百度关键词优化技巧
  • 本网站正在建设中扁平化中文网站模板下载
  • 水墨 网站源码素材网站会员
  • 对比色的网站网站的demo怎么做
  • 某企业网站的设计与实现wordpress底部导航栏修改
  • 扁平风网站微信 网页版
  • 建个可以注册会员网站多少钱wordpress汉字后缀图片不显示
  • 网站部署设计常用网站开发工具有哪些
  • 用cms创建自己带数据库的网站wordpress 上一页下一页
  • 网站制作公司有哪些证深圳实力网站建设
  • 网站ftp文件网站建设英语翻译资料
  • wordpress左边导航栏潍坊seo
  • 广东省住房建设厅网站6wordpress添加模块
  • 河北廊坊做网站域名绑定空间后 一般多久能打开网站
  • 免费建站并且绑定域名装修公司网站 源码
  • 怎么把做的网站发布wordpress多站点教程
  • 广州专业网站开发域名申请到网站上传全过程
  • 百度怎样才能搜到自己的网站教学网站前台模板
  • html网站源代码下载制作旅游景点介绍网页
  • 学做网站需要学什么苏州网站建站推广
  • 济南网站建设运营百度首页精简版