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

福州网站建设团队淘宝联盟网站怎么建设

福州网站建设团队,淘宝联盟网站怎么建设,国家对于学校网站建设,网络营销平台排名#x1f308; 个人主页#xff1a;白子寰 #x1f525; 分类专栏#xff1a;python从入门到精通#xff0c;魔法指针#xff0c;进阶C#xff0c;C语言#xff0c;C语言题集#xff0c;C语言实现游戏#x1f448; 希望得到您的订阅和支持~ #x1f4a1; 坚持创作博文… 个人主页白子寰 分类专栏python从入门到精通魔法指针进阶CC语言C语言题集C语言实现游戏 希望得到您的订阅和支持~ 坚持创作博文(平均质量分82)分享更多关于深度学习、C/Cpython领域的优质内容希望得到您的关注~  目录 单链表和双向链表的比较 链表的打印 单链表 双向链表  初始化 双向链表 开辟空间写入新数据 单链表 双向链表 尾部插入数据 单链表 双向链表 头部插入数据 单链表  双向链表 尾部删除数据 单链表 双向链表 头部删除数据 单链表 双向链表 查找 单链表  双向链表  在指定位置之前插入数据  单链表 在指定位置之后插入数据 单链表 双向链表  删除指定位置数据 单链表 双向链表 删除指定位置后的数据 单链表 销毁链表 单链表 双向链表 单链表和双向链表的比较 单向链表双向链表指代不同链表的链接方向是单向的访问链表时时要顺序读取从头开始访问每个数据的节点都有两个指针即直接前驱和直接后驱优点不同单个节点创建方便普通的线性内存通常在创建的时候就需要设定数据的大小节点的访问方便可以通过循环/递归的方法访问到任意数据从双向链表中的任意一个节点开始方便访问前驱节点和后继节点缺点不同增加/删除节点复杂需要多分配一个指针存储空间平均访问效率低于线性表只能从头到尾遍历只能找到后继无法找到前驱只能前进 链表的打印 单链表 //链表的打印 void SLTPrint(SLTNode* phead) {SLTNode* pcur phead;while (pcur){printf(%d-, pcur-data);pcur pcur-next;}printf(NULL\n); } 双向链表  //打印 void LTPrint(LTNode* phead) {assert(phead);LTNode* pcur phead-next;while (pcur ! phead){printf(%d-, pcur-dada);pcur pcur-next;}printf(\n); } 初始化 双向链表 //双向链表初始化 LTNode* LTInit() {//哨兵位设置为-1LTNode* phead SLTBuyNode(-1);return phead; } 开辟空间写入新数据 单链表 //开辟空间写入新数据 SLTNode* SLTbuyNode(SLTDatatype x) {SLTNode* newnode (SLTNode*)malloc(sizeof(SLTNode));if (newnode NULL){perror(malloc);exit(1);}//先插入后数据为空后为空newnode-data x;newnode-next NULL;return newnode;//返回数据 } 双向链表 //扩容申请新节点 LTNode* SLTBuyNode(LTDataType x) {LTNode* newnode (LTNode*)malloc(sizeof(LTNode));//扩容if (newnode NULL){perror(malloc);exit(1);}//数据赋值newnode-dada x;//指向自己newnode-next newnode-prev newnode;return newnode; } 尾部插入数据 单链表 //尾插 void SLTPushBack(SLTNode** pphead, SLTDatatype x) {//传的参数不为空assert(pphead);SLTNode*newnode SLTbuyNode(x);//链表为空新节点作为phead//*pphead是指向第一个节点的指针if (*pphead NULL)//头节点为空{*pphead newnode;return;}//链表不为空找尾节点//ptail作为尾节点SLTNode* ptail *pphead;//先方向后数据while (ptail-next){ptail ptail-next;}ptail-next newnode; } 双向链表 //尾插 void LTPushBack(LTNode* phead, LTDataType x) {assert(phead);LTNode* newnode SLTBuyNode(x);newnode-next phead;newnode-prev phead-prev;phead-prev-next newnode;phead-prev newnode; } 头部插入数据 单链表  //头插 void SLTPushFront(SLTNode** pphead, SLTDatatype x) {//传参有效assert(pphead);//开辟空间新数据进入SLTNode* newnode SLTbuyNode(x);//先方向后数据newnode-next *pphead;*pphead newnode; } 双向链表 //头插 void LTPushFront(LTNode* phead, LTDataType x) {assert(phead);LTNode* newnode SLTBuyNode(x);newnode-next phead-next;newnode-prev phead;phead-next newnode;phead-prev newnode-prev-prev; } 尾部删除数据 单链表 //尾删 void SLTPopBack(SLTNode** pphead) {//保证传参数据有效assert(pphead);//链表不能为空assert(*pphead);//链表不为空//链表只有一个节点if ((*pphead)-nextNULL){free(*pphead);*pphead NULL;return;}//有多个节点SLTNode* prev NULL;SLTNode* ptail *pphead;while (prev-next){prev ptail;ptail ptail-next;}prev NULL;//销毁尾节点free(ptail);ptail NULL; } 双向链表 //尾删 void LTPopBack(LTNode* phead) {assert(phead);LTNode* del phead-prev;del-prev-next phead;phead-prev del-prev;free(del);del NULL; } 头部删除数据 单链表 //头删 void SLTPopFront(SLTNode** pphead) {//保证传参有效assert(pphead);//保证链表有效assert(*pphead);//让第二个节点成为新的头SLTNode* next (*pphead)-next;//把旧的头节点释放掉free(*pphead);*pphead next;//第一个节点 原来第二个节点 } 双向链表 //头删 void LTPopFront(LTNode* phead) {assert(phead);LTNode* del phead-next;phead-next del-next;del-next-prev phead;free(del);del NULL; } 查找 单链表  SLTNode* SLTFind(SLTNode** pphead, SLTDatatype x) {//保证传参有效assert(pphead);//遍历链表SLTNode* pcur *pphead;while (pcur){if (pcur-data x){return pcur;}pcur pcur-next;}//没有找到return NULL; } 双向链表  //查找 LTNode* LTFind(LTNode* phead, LTDataType x) {assert(phead);LTNode* pcur phead-next;while (pcur ! phead){if (pcur-dada x){return pcur;}pcur pcur-next;}return NULL; } 在指定位置之前插入数据  单链表 //在指定位置之前插入数据 void SLTInsert(SLTNode** pphead, SLTNode* pos, SLTDatatype x) {//保证传参有效assert(pphead);//保证指定位置数据有效assert(pos);//链表也不能为空assert(*pphead);//新节点开辟新空间SLTNode* newnode SLTbuyNode(x);//pos刚好是头节点if (newnode-next *pphead){//头插SLTPushFront(pphead, x);return;}//pos不是头节点的情况SLTNode* prev *pphead;if (prev-next ! pos){prev prev-next;}prev-next newnode;newnode-next pos; } 在指定位置之后插入数据 单链表 //在指定位置之后插入数据 void SLTInsertAfter(SLTNode* pos, SLTDatatype x) {//保证目标数据有效assert(pos);//创建新节点SLTNode* newnode SLTbuyNode(x);//先方向后数据newnode-next pos-next;pos-next newnode; } 双向链表  //在pos位置之后插入数据 void LTInsert(LTNode* pos, LTDataType x) {assert(pos);LTNode* newnode SLTBuyNode(x);newnode-prev pos;newnode-next pos-next;pos-next newnode;pos-next-prev newnode; } 删除指定位置数据 单链表 //删除pos节点 void SLTErase(SLTNode** pphead, SLTNode* pos) {//保证传的参数有效assert(pphead);//保证单链表有效assert(*pphead);//保证目标数据有效assert(pos);//pos刚好是头节点没有前驱节点if (*pphead pos){//头删SLTPopFront(pphead);return;}//pos不是头节点SLTNode* prev *pphead;while (prev-next ! pos){prev prev-next;}//释放prev-next pos-next;free(pos);pos NULL; } 双向链表 //删除pos位置的数据 void LTErase(LTNode* pos) {assert(pos);LTNode* del pos;pos-prev-next pos-next;pos-next-prev pos-prev;free(del);del NULL; } 删除指定位置后的数据 单链表 //删除pos之后的节点 void SLTEraseAfter(SLTNode* pos) {//保证目标数据有效assert(pos);//pos-next数据有效assert(pos-next);SLTNode* del pos-next;pos-next pos-next-next;//释放free(del);del NULL; } 销毁链表 单链表 //销毁链表 void SListDesTroy(SLTNode** pphead) {//保证传的参数有效assert(pphead);//保证链表有效assert(*pphead);SLTNode* pcur *pphead;while (pcur){SLTNode* next pcur-next;free(pcur);pcur next;}*pphead NULL; } 双向链表 //销毁 void LTDesTroy(LTNode* phead) {//哨兵位不能为空assert(phead);LTNode* pcur phead-next;while(pcur ! phead){LTNode* next pcur-next;free(pcur);pcur next;}free(phead);phead NULL; } ***********************************************************分割线***************************************************************************** 完结 感谢浏览和阅读。 等等等等一下分享最近喜欢的一句话: “成为正确答案的第一步相信自己会是正确答案”。 我是白子寰如果你喜欢我的作品不妨你留个点赞关注让我知道你曾来过。你的点赞和关注是我持续写作的动力  好了划走吧。
http://www.w-s-a.com/news/267351/

相关文章:

  • 福州企业网站建站模板国内黑色风格的网站
  • 好看的网站首页设计android移动开发
  • 域名注册完成后如何做网站域名 删除 wordpress
  • wordpress xml导入大小东莞seo优化方案
  • 网站建设效益网站销售怎么做的
  • 利用网站空间做代理设计方案的格式范文
  • 无锡建设工程质量监督网站遵义做手机网站建设
  • 衡阳商城网站制作ps做网站首页规范尺寸
  • 微信网站应用开发营销推广的方案
  • 广州做网站商城的公司制作一个app的完整流程
  • 湖南城乡建设厅网站163注册企业邮箱
  • 做网站怎么调整图片间距织梦做的网站如何去掉index
  • 凡科网免费建站步骤及视频网页设计基础教程第二版课后答案
  • 建设一个旅游网站毕业设计企业网站要更新文章吗
  • 做网站需要简介中山网站设计公司
  • 网站怎么做导航栏微信公众号官网登录
  • 1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.电子商城网站开发
  • 百度网站怎么建设河北省工程造价信息网官网
  • 阿里云网站模板网页设计的合适尺寸是多少
  • 做小程序和做网站哪个好让别人做网站推广需要多少钱
  • 做外贸的几个网站查询网域名解析
  • 酒泉如何做百度的网站seo研究中心好客站
  • 网站设计建设平台户县做网站
  • 一元云购网站开发wordpress博客空间
  • 深圳高端网站建设公司排名如何搭建局域网服务器
  • 照片管理网站模板高端网站开发哪家好
  • 黄冈网站制作wordpress为什么不能显示域名
  • 做网站设计怎么进企业电子商务网站建设与管理教材
  • 设计广告公司网站建设网站开发技术选择
  • 个人网站教程个人网站有必要备案吗