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

网站推广属于什么行业wordpress二级分类目录

网站推广属于什么行业,wordpress二级分类目录,外贸网站镜像,做网站 做推广需要知道什么双循环链表设计 1.创建结构双指针体 // 创建结构体 struct node {struct node *prev; // 前驱节点int data; // 数据域struct node *next; };2.创建/增加节点,使用malloc函数来位节点分配空间,并初始化接节点 // 节点初始化 struct node *cr…

双循环链表设计

1.创建结构双指针体

// 创建结构体
struct node
{struct node *prev; // 前驱节点int data;          // 数据域struct node *next;
};

2.创建/增加节点,使用malloc函数来位节点分配空间,并初始化接节点

// 节点初始化
struct node *create_node(int data)
{struct node *xnew = malloc(sizeof(struct node));if (xnew == NULL){perror("创建失败\n");}xnew->prev = xnew;xnew->data = data;xnew->next = xnew;return xnew;
}

3.头插法插入节点,先让新的节点链接到头节点,若有2个节点存在的情况下,就让新节点先链接头节点跟头节点的下一个节点。

// 头插法
void tou(struct node *head, struct node *xnew)
{xnew->prev = head;xnew->next = head->next;head->next->prev = xnew;head->next = xnew;
}

4.尾插法,因为时双链表所以我们不定义游走指针,我们直接用头节点的prev指针指向最后一个节点,并让最后一个节点跟新节点链接。

// 尾插法
void wei(struct node *head, struct node *xnew)
{xnew->next = head;xnew->prev = head->prev;head->prev->next = xnew; // 这句要先写,否则会导致原先的指针被覆盖掉head->prev = xnew;
}

5.显示的前遍历,通过定义一个结构体指针pre,让其指向最后一个节点,再通过访问节点不断的偏移,使用pre = pre->prev来访问节点

// 前遍历
void show_qian(struct node *head)
{struct node *pre = head->prev;printf("前遍历:");while (pre != head){printf("%d ", pre->data);pre = pre->prev;}printf("\n");
}

6.显示的后遍历,通过定义一个结构体指针pos,让其指向第一个节点,再通过偏移pos指针,让其不断地走,pos = pos->next,与前遍历一样判断的条件都是指针不等于头节点。

// 后遍历
void show_hou(struct node *head)
{struct node *pos = head->next;printf("后遍历:");while (pos != head){printf("%d ", pos->data);pos = pos->next;}printf("\n");
}

7.删除双循环链表的节点, 先定义一个结构体指针pos指向头结点的下一位,通过while循环来找到数据后,我们定义一个结构体指针p,指向当前这个数据的地址,并让指针pos重新链接到p的下一位,然后让结构体指针p的双指针都指向NULL,然后free(p);

//删除双循环链表的节点
void delete_node(struct node *head,int data)
{struct node *pos = head->next;while(pos->data != data){pos = pos->next;}struct node *p = pos;pos = pos->prev;pos->next = p->next;p->next->prev = pos;p->next = NULL;p->prev = NULL;free(p);
}

8.修改节点,跟单循环链表的修该节点方式一样,不过双链表可以从后面或者前面来遍历并找到数组,定义一个游走的结构体指针pos,让其不断地访问节点的数值,如果不是那么就往下一位走,直到找到数据,找到数据后重新赋值新数值。

//修改双链表的节点数据
void modify_node(struct node *head,int  data, int new_data)
{struct node *pos = head->next;while(pos->data != data){pos = pos->next;//pos指针不断移动去比对}pos->data = new_data;
}

完整代码:

#include <stdio.h>
#include <stdlib.h>
// 双循环链表// 创建结构体
struct node
{struct node *prev; // 前驱节点int data;          // 数据域struct node *next;
};// 节点初始化
struct node *create_node(int data)
{struct node *xnew = malloc(sizeof(struct node));if (xnew == NULL){perror("创建失败\n");}xnew->prev = xnew;xnew->data = data;xnew->next = xnew;return xnew;
}
// 头插法
void tou(struct node *head, struct node *xnew)
{xnew->prev = head;xnew->next = head->next;head->next->prev = xnew;head->next = xnew;
}
// 尾插法
void wei(struct node *head, struct node *xnew)
{xnew->next = head;xnew->prev = head->prev;head->prev->next = xnew; // 这句要先写,否则会导致原先的指针被覆盖掉head->prev = xnew;
}// 前遍历
void show_qian(struct node *head)
{struct node *pre = head->prev;printf("前遍历:");while (pre != head){printf("%d ", pre->data);pre = pre->prev;}printf("\n");
}
// 后遍历
void show_hou(struct node *head)
{struct node *pos = head->next;printf("后遍历:");while (pos != head){printf("%d ", pos->data);pos = pos->next;}printf("\n");
}//删除双循环链表的节点
void delete_node(struct node *head,int data)
{struct node *pos = head->next;while(pos->data != data){pos = pos->next;}struct node *p = pos;pos = pos->prev;pos->next = p->next;p->next->prev = pos;p->next = NULL;p->prev = NULL;free(p);
}//修改双链表的节点数据
void modify_node(struct node *head,int  data, int new_data)
{struct node *pos = head->next;while(pos->data != data){pos = pos->next;//pos指针不断移动去比对}pos->data = new_data;
}
int main()
{struct node *head = create_node(0);for (int i = 1; i < 10; i++){// tou(head, create_node(i));wei(head, create_node(i));}show_qian(head); // 前遍历show_hou(head);  // 后遍历delete_node(head,5);show_qian(head); // 前遍历show_hou(head);  // 后遍历modify_node(head,2,666);show_qian(head); // 前遍历show_hou(head);  // 后遍历
}


文章转载自:

http://R42e3QP0.ymjrg.cn
http://qj4NZzoz.ymjrg.cn
http://BqjBwCNQ.ymjrg.cn
http://wUuJK2Yc.ymjrg.cn
http://ZsW3ento.ymjrg.cn
http://sbCetQyJ.ymjrg.cn
http://mbmNamXJ.ymjrg.cn
http://JQ6fYh6I.ymjrg.cn
http://VAIR9pwG.ymjrg.cn
http://WHkRlwAE.ymjrg.cn
http://A9Kdecod.ymjrg.cn
http://h6AuYyMi.ymjrg.cn
http://lSmdIMK4.ymjrg.cn
http://xrqFAgMM.ymjrg.cn
http://uZ3VqMdU.ymjrg.cn
http://olsp2ACF.ymjrg.cn
http://A1A5mEel.ymjrg.cn
http://W8vDZbCu.ymjrg.cn
http://16QJaT2j.ymjrg.cn
http://PTKv8K5i.ymjrg.cn
http://vSDSoB6D.ymjrg.cn
http://7GAMwyCq.ymjrg.cn
http://CMuYFifN.ymjrg.cn
http://LU0rN1d7.ymjrg.cn
http://aEPxvqIZ.ymjrg.cn
http://JB8aNDoK.ymjrg.cn
http://yoWIYvgf.ymjrg.cn
http://44wpx1yW.ymjrg.cn
http://QO0e3T8X.ymjrg.cn
http://8HxWw0x6.ymjrg.cn
http://www.dtcms.com/wzjs/740838.html

相关文章:

  • 网站建设订流量什么意思莱芜网站优化有哪些
  • 深圳婚庆网站建设个人网页设计下载
  • 如何做教育公司网站代理商入口
  • wordpress搭建ss网站搜索排名优化价格
  • 想当淘客自己的网站怎么做seo网站推广的主要目的不包括
  • 保险微网站制作企业服务方案
  • 九脉堂是做网站的建筑模板哪种好
  • 网站建设和网络推广方案关键词生成器 在线
  • 建手机网站iis配置网站是什么
  • 做网站的IT行业中山工商注册公司
  • wordpress 采集优酷佛山网站建设优化企业
  • 源码做网站教程食堂承包技术支持 东莞网站建设
  • 搬家公司网站模板WordPress 扫码支付跳转
  • 目录做排名 网站扁平化网站导航ui模板
  • 绍兴建设开发有限公司网站厦门seo俱乐部
  • 营销型网站和普通网站可以兼职做设计的网站
  • php团购网站开发创建自己网站
  • 网站制作公司成都开源房产网站源码
  • 网站建设的一般过程包括哪些方面网站设计风格介绍
  • 响应式网站模板 金融开发公司发生的物业费用所得税申报
  • 网站管理助手ftp怎么做关于易烊千玺的网站
  • wap自助建站wordpress整合ckplay
  • 个人站长网站推广软件的网站
  • wordpress站群插件2022年没封网站直接进入
  • 建立手机也可浏览的网站教程免费个人电子版简历下载
  • 京东网站优化手工制作灯笼简单又漂亮
  • 哈尔滨高端网站建设查询网入口
  • 域名注册好了怎么了做网站国家企业官网查询系统
  • 网站开发逻辑短信营销哪个平台好
  • 常州网站的优化什么是网站建设策划书