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

兰州做网站的公司有哪些百度推广二级代理商

兰州做网站的公司有哪些,百度推广二级代理商,做试管的网站,网站建设方案功能本程序List链表用两种方式实现,一种是双向链表,一种是双向循环链表。循环双向链表和双向链表,它们的编码差别很小;但是循环链表在插入效率上胜出很多,同时查询时候更灵活。综合考虑,循环链表是首选。 另外…

本程序List链表用两种方式实现,一种是双向链表,一种是双向循环链表。循环双向链表和双向链表,它们的编码差别很小;但是循环链表在插入效率上胜出很多,同时查询时候更灵活。综合考虑,循环链表是首选。

另外,不同于Windows上的ListEntry结构,本LIST结构没有链表头。对于链表头,各有各的说法,但是天下没有免费的午餐,某个地方得了好处,必然会在别的地方承担一定的损失。总之一句话,我个人的理念是,中间代码尽可能简单易用,以此链表头弃之不用。

非常简单的两种链表实现,主要是查询、插入、删除几个功能的实现,总共的cpp代码不过300行左右,在座的各位都是软件开发小能手,功能实现不再赘述。

完整工程代码:https://github.com/satadriver/dataStruct

头文件:

#pragma once#include "Element.h"#pragma pack(1)typedef struct  _LIST
{_LIST* prev;_LIST* next;ELEMENT* e;
}LIST;#pragma pack()class List {
public:List();~List();int insert(ELEMENT* e);int remove(ELEMENT* e);protected:LIST* search(ELEMENT* e);LIST* mList;int mSize;
};class CList {
public:CList();~CList();int insert(ELEMENT* e);int remove(ELEMENT* e);protected:LIST* search(ELEMENT* e);LIST* mList;int mSize;
};

循环双向链表实现代码如下:

int CList::clear() {LIST* l = mList;int cnt = 0;do{if (l == 0){break;}LIST* next = l;delete l->e;delete l;l = next;cnt++;} while (l != mList);return cnt;
}CList::CList() {mList = 0;mSize = 0;
}CList::CList(LIST* l) {mList = l;mSize = 0;
}CList::~CList() {if (mList){delete[] mList;mList = 0;}
}LIST* CList::search(ELEMENT* e) {LIST* list = mList;int cnt = 0;do{if (list == 0){break;}if (list->e->e == e->e){return list;}list = list->next;cnt++;} while (list != mList);return 0;
}int CList::insert(ELEMENT* e) {LIST* list = search(e);if (list){return 0;}list = new LIST;ELEMENT* e_new = new ELEMENT;memcpy(e_new, e, sizeof(ELEMENT));list->e = e_new;if (mList == 0){list->next = list;list->prev = list;mList = list;}else {LIST* prev = mList->prev;list->next = mList;list->prev = mList->prev;if (prev){prev->next = list;}mList->prev = list;}mSize++;return 1;
}int CList::remove(ELEMENT* e) {LIST* list = search(e);if (list == 0){return 0;}LIST* next = list->next;LIST* prev = list->prev;if (next){next->prev = prev;}if (prev){prev->next = next;}delete list->e;if (list == mList){if (mList->next == mList || mList->prev == mList){mList = 0;}else {mList = mList->next;}}delete list;int result = mSize;mSize--;return result;
}

双向链表实现代码:

List::List() {mList = 0;mSize = 0;
}List::List(LIST* l) {mList = l;mSize = 0;
}List::~List() {if (mList){delete[] mList;mList = 0;}
}LIST* List::search(ELEMENT* e) {LIST* list = mList;int cnt = 0;while (list){if (list->e->e == e->e){return list;}list = list->next;cnt++;}return 0;
}int List::insert(ELEMENT* e) {LIST* list = search(e);if (list){return 0;}list = new LIST;ELEMENT* e_new = new ELEMENT;memcpy(e_new, e, sizeof(ELEMENT));list->e = e_new;int cnt = 0;if (mList == 0){list->next = 0;list->prev = 0;mList = list;cnt++;}else {cnt++;LIST* tmp = mList;while (tmp->next){tmp = tmp->next;cnt++;}list->next = 0;list->prev = tmp;tmp->next = list;cnt++;}mSize = cnt;return cnt;
}int List::clear() {LIST* l = mList;int cnt = 0;do{if (l == 0){break;}LIST* next = l;delete l->e;delete l;l = next;cnt++;} while (l != mList);return cnt;
}int List::remove(ELEMENT* e) {LIST* list = search(e);if (list == 0){return 0;}LIST* next = list->next;LIST* prev = list->prev;if (next){next->prev = prev;}if (prev){prev->next = next;}delete list->e;if (list == mList){if (mList->next == 0){mList = 0;}else {mList = mList->next;}}delete list;int result = mSize;mSize--;return result;
}
http://www.hrbkazy.com/news/23296.html

相关文章:

  • 某服装企业网站建设方案群站优化之链轮模式
  • 计算机应用技术专业主要学什么网页优化最为重要的内容是
  • 宁波网页设计职业安卓aso优化
  • 学做衣服网站知乎免费发布外链
  • 微博营销网站网络营销竞价推广
  • 买业务送网站seo关键词排名优化系统源码
  • 怎么给网站的照片做超级链接线上推广员是做什么的
  • 网站建设及空间网站收录一键提交
  • 在线图片编辑工具百度搜索引擎优化公司哪家强
  • 安阳市网站建设的公司哈尔滨网站推广
  • 黑龙江省建设网官方网站网站seo排名培训
  • seo网站关键词排名快速百度网盘人工申诉电话
  • 哪个网站可以做自由行地图百度快照手机入口
  • 十堰门户网站建设重庆网站排名推广
  • 专门做网站公司游戏推广拉人渠道
  • 桂林漓江阳朔一日游旅游攻略seo排名助手
  • 客户管理系统毕业论文搜云seo
  • 苏州网站建设兼职私域运营软件
  • 郑州网站建站网站海外aso优化
  • 万网域名中文网站查询营业推广策划
  • 手机网站banner尺寸智慧教育
  • 快捷的网站建设软件网站seo入门基础教程
  • 旅游网站静态模版下载南昌seo顾问
  • 柳州网站建设价格百度指数热度榜
  • jsp做网站注册页面网络销售怎么找客源
  • 外贸网站网站建设友情链接大全
  • 智能网站建设维护软件企点qq官网
  • 小说网站怎么做权重网盟推广平台
  • 手机网页代码seo综合查询接口
  • 武汉网络公司武汉做网站公司国内做seo最好的公司