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

建设网站的请示网站宣传方法

建设网站的请示,网站宣传方法,各种浏览器网站大全,武汉外贸网站制作双向循环带头链表 双向循环带头链表结构如下  先设计数据结构如下。 typedef int LTDataType; typedef struct ListNode { struct ListNode* prev; struct ListNode* next; LTDataType val; }LTNode;.   第一个节点为头结点,后面链接的节点存储数据。一个指向前…

双向循环带头链表

 双向循环带头链表结构如下
Alt
 先设计数据结构如下。
typedef int LTDataType;
typedef struct ListNode
{
struct ListNode* prev;
struct ListNode* next;
LTDataType val;
}LTNode;.
  第一个节点为头结点,后面链接的节点存储数据。一个指向前面的指针prev,一个指向后面的指针next,一个数据。

 实现下面的接口
LTNode* ListInit();
void ListDestory(LTNode* phead);
void ListPrint(LTNode* phead);
void ListPushBack(LTNode* phead, LTDataType data);
void ListPopBack(LTNode* phead);
void ListPushFront(LTNode* phead, LTDataType data);
void ListPopFront(LTNode* phead);
LTNode* ListFind(LTNode* phead, LTDataType data);
// 双向链表在pos的前面进行插入
void ListInsert(LTNode* pos, LTDataType data);
// 双向链表删除pos位置的结点
void ListErase(LTNode* pos);


LTNode* ListInit();这个节点的实现初始化,要注意,两个指针要自己指向自己,在写后面的接口中有大用.

LTNode* BuyNode(LTDataType data)
{LTNode* node = (LTNode*)malloc(sizeof(LTNode));if (node == NULL){perror("malloc fail");return;}node->prev = node;node->next = node;node->val = data;return node;
}LTNode* ListInit()
{LTNode* node = (LTNode*)malloc(sizeof(LTNode));if (node == NULL){perror("malloc fail");return;}node->prev = node->next = node;return node;
}
}

 ListDestory接口实现定义一个指针cur = phead->next,先保存下一个节点的地址,在free.

void ListDestory(LTNode* phead)
{assert(phead);LTNode* cur = phead->next;while (cur!=phead){LTNode* next = cur->next;free(cur);cur = next;}free(phead);phead = NULL;
}

 ListPrint,遍历直接·打印

void ListPrint(LTNode* phead)
{assert(phead);LTNode* cur = phead->next;while (cur!=phead){printf("%d->", cur->val);cur = cur->next;}printf("\n---------------------------\n");
}

 LIstPushBack直接尾插,

void ListPushBack(LTNode* phead, LTDataType data)
{assert(phead);LTNode* newnode = BuyNode(data);LTNode* tail = phead->next;while (phead != tail->next)找到尾直接插入{tail = tail->next;}LTNode* prev = tail;LTNode* next = tail->next;prev->next = newnode;newnode->prev = prev;newnode->next = next;next->prev = newnode;
}

 尾删

void ListPopBack(LTNode* phead)
{assert(phead);if (phead->next == phead){printf("No node\n");return;}LTNode* cur = phead->next;while (cur->next != phead){cur = cur->next;}LTNode* prev = cur->prev;LTNode* next = cur->next;free(cur);prev->next = next;next->prev = prev;
}

 头插

void ListPushFront(LTNode* phead, LTDataType data)
{assert(phead);LTNode* newnode = BuyNode(data);LTNode* next = phead->next;phead->next = newnode;newnode->prev = phead;newnode->next = next;next->prev = newnode;
}

 头删

void ListPopFront(LTNode* phead)
{assert(phead);if (phead->next == phead){printf("No node\n");return;}LTNode* del = phead->next;LTNode* next = del->next;free(del);del = NULL;phead->next = next;next->prev = phead;}

 下面接口

LTNode* ListFind(LTNode* phead, LTDataType data)
{assert(phead);LTNode* cur = phead->next;while (cur != phead){if (cur->val == data){return cur;}cur = cur->next;}
}// 双向链表在pos的前面进行插入
void ListInsert(LTNode* pos, LTDataType data)
{assert(pos);LTNode* newnode = BuyNode(data);LTNode*  prev = pos->prev;prev->next = newnode;newnode->prev = prev;newnode->next = pos;pos->prev = newnode;}
// 双向链表删除pos位置的结点
void ListErase(LTNode* pos)
{assert(pos);LTNode* prev = pos->prev;LTNode* next = pos->next;free(pos);pos = NULL;prev->next = next;next->prev = prev;
}

 完结!
http://www.dtcms.com/wzjs/525807.html

相关文章:

  • 高港网站开发青岛网站建设公司哪家好
  • 展示类网站管理员社群营销平台有哪些
  • wordpress调用网站副标题品牌推广的具体方法
  • 长春网站设计价格网络推广文案怎么写
  • 不同类型网站北京做网站推广
  • 校园网站怎么建营销推广方式都有哪些
  • 建平台网站费用个人如何注册网址
  • 剑灵网站模板软文广告经典案例100字
  • 宠物美容网站建设的目的网站推广的常用方法有哪些?
  • 阿里云网站怎么备案域名解析网站优化推广方法
  • 营销网站建设的步骤公司网站建设方案
  • 深圳做企业网站的公司南宁百度推广代理公司
  • 塑料袋销售做哪个网站推广好北京营销推广公司
  • 信访网站建设方案免费搭建自己的网站
  • 公司网站做一下多少钱成都全网推广哪家专业
  • 青岛网站建设最便宜线下宣传渠道和宣传方式
  • wordpress空间 腾讯北京seo外包公司要靠谱的
  • 自做购物网站多少钱昆山网站建设
  • 哪些网站可以做外部锚文本深圳seo优化seo优化
  • 深圳手机端网站建设设计公司个人博客搭建
  • 南京搜必应网站优化莆田seo推广公司
  • 进销存管理系统免费版短视频seo系统
  • 屯溪网站建设龙岩seo
  • 一个完整的网站怎么做chrome浏览器官网入口
  • 网站主机托管南宁百度seo
  • div css网站重构第二版视频教程微商引流推广
  • 大连龙采做网站行不行h5制作
  • 兰州网站建设软文街
  • 网站建设流程案例广告门
  • 3d渲染网站建设googleplay安卓版下载