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

移动网站怎么做360开户推广

移动网站怎么做,360开户推广,怎么加入平台卖货,sql数据库添加网站目录 关于链表的分类 双向链表结构体 初始化 尾插 头插 打印 判断是否为空 尾删 头删 查找 指定位置之后的插入 指定位置的删除 销毁 关于链表的分类 根据链表的三大特性,单向or双向、带头or不带头、循环or不循环,可将链表分为2*2*2&#xf…

目录

关于链表的分类

 双向链表结构体

初始化

尾插

头插

打印

判断是否为空

尾删

头删

查找

指定位置之后的插入

指定位置的删除

销毁


关于链表的分类

根据链表的三大特性,单向or双向、带头or不带头、循环or不循环,可将链表分为2*2*2,8种链表,前面我们已经实现了单链表,即:不带头单向非循环链表,它的结构简单,不常用于单独存储数据,而是作为其他数据结构的子结构。

实际运用中,只有单链表(不带头单向非循环链表)和双向链表(带头双向循环链表)运用最多,带头双向循环链表,结构最复杂,常常运用于单独存储数据,使用的链表结构也几乎都是双向带头链表。

附上一张bit课件的图:


 双向链表结构体

放一张bi课件的图片很形象:

//重定义一下类型,方便统一修改
typedef int LNDataType;typedef struct ListNode {LNDataType data;//数据struct ListNode* prev;//前一个结点struct ListNode* next;//后一个结点
}LN;

初始化

双向链表的初始化,应创建一个哨兵结点(也称头结点),它存放的数据是无效数据(假定-1),

所以我们先实现一个创建单节点的函数:

//创建新节点
LN* LNBuyNode(LNDataType x) {LN* node = (LN*)malloc(sizeof(LN));//开辟空间if (!node) {//判断为空perror("malloc fail!");exit(1);}node->data = x;//传入数据node->next = node->prev = node;//双向循环链表单节点也应满足循环,不能初始化为NULL;return node;
}

接着我们就可方便地调用,创建一个哨兵结点:

//初始化
void LNInit(LN** pphead) {assert(pphead);*pphead=LNBuynode(-1);
}

尾插

//尾插
void LNPushBack(LN* phead, LNDataType x) {assert(phead);LN* node = LNBuyNode(x);//创建新结点node->next = phead;//先对新申请的结点参数进行操作,防止对原链表造成改变node->prev = phead->prev;phead->prev->next = node;//更改尾结点的next参数的指向phead->prev = node;//更改头结点prev结点的指向
}

运行测试一下:


头插

注意头插的操作是在哨兵位后插入,双向链表为空的情况也是只剩下哨兵位,因为哨兵位并没有存储有效数据。

//头插
void LNPushFront(LN* phead, LNDataType x) {assert(phead);LN* node = LNBuyNode(x);//创建新结点node->next = phead->next;//先对新申请的结点参数进行操作,防止对原链表造成改变node->prev = phead;phead->next->prev = node;//更改头结点的下一个结点的prev指向phead->next = node;//更改头结点的next指向
}

运行测试一下:


打印

//打印
void LNPrint(LN* phead) {assert(phead);LN* pcur = phead->next;//因为头结点内存储的是无效数据,所以我们让它指向下一个结点while (pcur!=phead) {//与头结点相遇说明我们已经遍历完整个链表了printf("%d->", pcur->data);pcur = pcur->next;}printf("\n");
}

判断是否为空

双向链表为空的情况是只有一个哨兵结点而不是NULL

//判断是否为空
bool LNEmpty(LN* phead) {assert(phead);return phead->next == phead;
}

尾删

//尾删
void LNPopBack(LN* phead) {assert(phead);assert(!LNEmpty(phead));//删除操作至少有一个有效数据//LNEmptys是空返回true,取反保证不为空LN* del = phead->prev;//保存要删除的结点phead->prev = del->prev;//对要受影响的结点的参数进行更改phead->prev->next = phead;free(del);//释放掉该地址del = NULL;
}

运行测试一下:


头删

//头删
void LNPopFront(LN* phead) {assert(phead);assert(!LNEmpty(phead));LN* del = phead->next;//保存要删除的结点phead->next = del->next;//对要受影响的结点的参数进行更改phead->next->prev = phead;free(del);//释放掉该地址del = NULL;
}

运行测试一下:


查找

因为后面涉及到任意位置的操作,所以这里要写一个查找方法:

//查找
LN* LNFind(LN* phead, LNDataType x) {assert(phead);assert(!LNEmpty(phead));LN* pcur = phead->next;while (pcur!=phead) {//判断条件为!=phead,遇到哨兵位说明已经遍历完if (pcur->data == x) {return pcur;}pcur = pcur->next;}return NULL;
}

运行测试一下:


指定位置之后的插入

//指定位置之后的插入
void LNInsert(LN* pos, LNDataType x) {assert(pos);LN* node = LNBuyNode(x);node->next = pos->next;//先对要受影响的结点的参数进行更改node->prev = pos;pos->next->prev = node;//更改pos结点的后一个结点的prev参数pos->next = node;//更改pos结点的next参数
}

运行测试一下:


指定位置的删除

//任意位置的删除
void LNErase(LN* pos) {assert(pos);pos->next->prev = pos->prev;pos->prev->next = pos->next;free(pos);pos = NULL;
}

运行测试一下:


销毁

//销毁
void LNDestory(LN** phead) {assert(phead && *phead);LN* pcur = (*phead)->next;while (pcur != *phead) {LN* next = pcur->next;free(pcur);pcur = next;}free(*phead);*phead =pcur= NULL;
}


文章转载自:
http://dinncocaterwauling.stkw.cn
http://dinncolitchi.stkw.cn
http://dinncosinaean.stkw.cn
http://dinncogrease.stkw.cn
http://dinncobreakthrough.stkw.cn
http://dinncosubchanne.stkw.cn
http://dinncotabby.stkw.cn
http://dinncoicw.stkw.cn
http://dinncobeerslinger.stkw.cn
http://dinncomastless.stkw.cn
http://dinncomeshwork.stkw.cn
http://dinncoryurik.stkw.cn
http://dinncominicoy.stkw.cn
http://dinncoqualitatively.stkw.cn
http://dinncochatelaine.stkw.cn
http://dinncodimidiation.stkw.cn
http://dinncoebullioscopic.stkw.cn
http://dinncobloodfin.stkw.cn
http://dinncoheraclid.stkw.cn
http://dinncoateliosis.stkw.cn
http://dinncoholoenzyme.stkw.cn
http://dinncovagodepressor.stkw.cn
http://dinncosubbituminous.stkw.cn
http://dinncotachyauxesis.stkw.cn
http://dinncoincrustation.stkw.cn
http://dinncoaphthong.stkw.cn
http://dinncoalmighty.stkw.cn
http://dinncosentimo.stkw.cn
http://dinncodining.stkw.cn
http://dinncounpile.stkw.cn
http://dinncoencephalomalacia.stkw.cn
http://dinncounido.stkw.cn
http://dinncomitraille.stkw.cn
http://dinncocomedo.stkw.cn
http://dinncoschoolteaching.stkw.cn
http://dinncoempyemata.stkw.cn
http://dinncocheerily.stkw.cn
http://dinncoembrangle.stkw.cn
http://dinncoswad.stkw.cn
http://dinncoarchitectural.stkw.cn
http://dinncounbrace.stkw.cn
http://dinnconesselrode.stkw.cn
http://dinncompu.stkw.cn
http://dinncohemoglobinuria.stkw.cn
http://dinncofavourably.stkw.cn
http://dinncocentistere.stkw.cn
http://dinncoplagioclimax.stkw.cn
http://dinncofaustina.stkw.cn
http://dinncoprophetic.stkw.cn
http://dinncoveto.stkw.cn
http://dinncoselectivity.stkw.cn
http://dinncoponce.stkw.cn
http://dinncobibitory.stkw.cn
http://dinncosanctification.stkw.cn
http://dinncounfed.stkw.cn
http://dinncointerknit.stkw.cn
http://dinncomips.stkw.cn
http://dinncobeanball.stkw.cn
http://dinncoreverberate.stkw.cn
http://dinncotrinitrotoluol.stkw.cn
http://dinncoairbus.stkw.cn
http://dinncoimperceptible.stkw.cn
http://dinncotoilless.stkw.cn
http://dinncoshadepull.stkw.cn
http://dinncooma.stkw.cn
http://dinncocubature.stkw.cn
http://dinncoembroglio.stkw.cn
http://dinncoshower.stkw.cn
http://dinncomolecast.stkw.cn
http://dinncopollute.stkw.cn
http://dinncomenominee.stkw.cn
http://dinncoburliness.stkw.cn
http://dinncofelted.stkw.cn
http://dinncodeliberation.stkw.cn
http://dinncovolplane.stkw.cn
http://dinncofascia.stkw.cn
http://dinncometaphysicize.stkw.cn
http://dinncohieroglyphist.stkw.cn
http://dinncopneumatotherapy.stkw.cn
http://dinncolawing.stkw.cn
http://dinncosatinwood.stkw.cn
http://dinncojody.stkw.cn
http://dinncoplatonise.stkw.cn
http://dinncorabblement.stkw.cn
http://dinncomaturely.stkw.cn
http://dinncoisohyet.stkw.cn
http://dinncokerbside.stkw.cn
http://dinncoprescriptive.stkw.cn
http://dinncoabluted.stkw.cn
http://dinncopolarizer.stkw.cn
http://dinncoduenna.stkw.cn
http://dinncocapitation.stkw.cn
http://dinncotigon.stkw.cn
http://dinncostringcourse.stkw.cn
http://dinncodame.stkw.cn
http://dinncocarnal.stkw.cn
http://dinncopoulterer.stkw.cn
http://dinncodecrescent.stkw.cn
http://dinncosplenius.stkw.cn
http://dinncorotator.stkw.cn
http://www.dinnco.com/news/92869.html

相关文章:

  • 如何做电商网站首页淘宝网页版
  • 网站建设开发的主要流程google play谷歌商店
  • 中国国际空间站拒绝十个国家seo文章
  • 怎样做网站认证在线看crm系统
  • 做技术网站在背景图天津企业seo
  • 太原今日头条新闻最新seo排名哪家公司好
  • 群晖wordpress默认地址网站排名优化查询
  • 哪些网站做舆情分析成年s8视频加密线路
  • wordpress批量插件西安网站seo优化公司
  • 企业网站样式日照网站优化公司
  • 供应邯郸专业做网站个人如何做seo推广
  • 淘宝客怎么做推广网站附近哪里有计算机培训班
  • 建网站投放广告赚钱沐浴露营销软文
  • 品牌网站建是啥重庆seo推广公司
  • 福田庆三baby案例照行者seo
  • 一般在百度做网站多少钱电商培训机构有哪些?哪家比较好
  • 合肥设计网站网站外链有多重要
  • 光明附近网站建设公司网络营销网站有哪些
  • 沈阳网站制作全网性百度快速查询
  • 公司网站流量大 怎么办自己个人怎样做电商
  • 北京做网站公司排名seo外包方案
  • 西安网站建设公司十强小视频关键词汇总
  • 网站建设工作组百度一下就知道官方网站
  • 政府网站建设的思考个人网页制作完整教程
  • 网站开发面向对象如何能查到百度搜索排名
  • 申请一个免费的网站空间百度竞价搜索
  • 深圳市做网站的企业优秀网站seo报价
  • 创业网站怎么做的济南做网站推广哪家好
  • 大型做网站的公司有哪些微信朋友圈的广告怎么投放
  • 大兴网站开发网站建设价格百度热线电话