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

网站建设app开发合同济南网站建设(力选聚搜网络)

网站建设app开发合同,济南网站建设(力选聚搜网络),网站开发公司 优帮云,网站建设公司主营业务一、循环链表定义 将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一 个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)。 循环链表解决了一个很麻烦的问题。如何从当中一 个结点出发&am…

一、循环链表定义

将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一 个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)。
循环链表解决了一个很麻烦的问题。如何从当中一 个结点出发,访问到链表的全部结点。为了使空链表与非空链表处理一致,我们通常设一个头结点,当然,这并不是说循环链表一定要头结点,这需要注意。

二、循环列表的基本操作

循环列表的操作原理和单链表相似。

1、循环链表创建

//创建循环链表
cirLinkList LinkList_create(){cirLinkList header = (cirLinkList)malloc(sizeof(Node));header->next = header;return header;
}

2、 循环链表 插入元素

//循环链表L中第i个元素位置插入e值
int cirLinklist_insert(cirLinkList head, int i, ElemType e) {cirLinkList p = head;int j = 0;while (p && j < i){p = p->next;j++;}if(!p || j > i+1){return ERROR;}cirLinkList s = (cirLinkList)malloc(sizeof(cirLinkList));s->data = e;s->next = p->next;p->next = s;return OK;
}

3、循环链表删除元素

//循环链表L中删除第i个元素
int cirLinklist_del(cirLinkList list,int i)
{cirLinkList head = list;int j = 0;while(head && j < i){head = head->next;j++;}if(!head || j > i){return ERROR;}cirLinkList q;q = head->next;q->next = head->next->next;head->next = q->next;free(q);return OK;
}

4、循环链表 输出所有元素

//打印循环链表中所有的元素
void cirLinkList_print(cirLinkList list)
{cirLinkList head = list->next;while(head != list){printf("%d ",head->data);head = head->next;}printf("\n");
}

5、输出循环链表中指定位置的元素

// //返回L中第i个数据元素的值
ElemType cirLinkList_getElem(cirLinkList list,int i){cirLinkList p = list->next;int j = 0;while(p && j < i){p = p->next;j++;}if(!p || j > i){return ERROR;}return p->data;
}

6、销毁循环链表

//销毁循环链表
void cirLinkList_destroy(cirLinkList heard){if(heard == NULL){return;}cirLinkList p = heard->next;cirLinkList q = NULL;while(p != heard){q = p->next;free(p);p = q;}free(heard);
}

代码示例:

int main()
{cirLinkList list;list = LinkList_create();cirLinklist_insert(list,0,1);cirLinkList_print(list);cirLinklist_insert(list,0,2);cirLinkList_print(list);cirLinklist_insert(list,1,3);cirLinkList_print(list);cirLinklist_insert(list,1,4);cirLinkList_print(list);int data = cirLinkList_getElem(list,1);printf("%d \n",data);cirLinklist_del(list,1);cirLinkList_print(list);cirLinkList_destroy(list);return 0;
}

运行结果:

三、循环列表的适用范围

循环链表的优点在于可以实现循环访问和循环操作,适用于需要循环遍历的场景,比如游戏中的循环动作、循环播放音乐等。同时,循环链表也可以用于构建环形队列等数据结构。

http://www.yayakq.cn/news/231572/

相关文章:

  • 天安云谷网站建设专业网站制作企业
  • 网站优化排名教程高端装修公司怎么获客
  • 网站怎么做uc整合用手机建网站的步骤
  • 做微信公众号整合网站传统网站怎么做前端模块
  • 校园网站建设的开题报告网站开发项目经验和教训
  • 百色网站免费建设wordpress 添加自定义按钮
  • 建设智能网站可口可乐的网站建设
  • 石家庄裕华区网站建设seo服务公司招聘
  • 怎么制作免费建网站门户网站优化怎么做
  • 网站用哪个软件做网页制作与网站建设实战大全 视频
  • 百度网站外链发布平台自己网站做seo
  • 电子信箱注册网站有限公司注册需要什么条件
  • 建设网站用的软件计算机网络设计
  • 网站seo公司网站建设好卖吗
  • 2013网站设计网站开发工作室营业执照
  • 网站开发安全小贴士wordpress嵌入百度地图可以导航
  • 深圳市做网站的wordpress做资讯
  • 网站开发的文献电脑学校
  • 易天时代网站建设东台网站建设
  • 柳州专业做网站紫色风格网站
  • 北京网站开发制作公司扁平化资讯网站模板
  • 专门做优惠劵的网站wordpress 4.4 优化
  • 网站开发 网站建设邯郸市网
  • 网站开发是属于哪个税收分类住建局查询房产信息
  • 潍坊尚呈网站建设公司怎么样策划推广是做什么的
  • html5建设摄影网站意义全国建筑行业资质查询平台
  • 上海知名的广告公司上海网站建设seo
  • 网站流量多少做网盟宝安的医院网站建设
  • 桂林公司网站搭建wordpress的搭建环境搭建
  • 北航做网站公司怎样下载门户网站