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

亚马逊做deal的网站百度关键词搜索热度查询

亚马逊做deal的网站,百度关键词搜索热度查询,做笑话网站需要什么,建设厅网站怎样刷身份证List.h 相较于之前的顺序表和单向链表&#xff0c;双向链表的逻辑结构稍微复杂一些&#xff0c;但是在实现各种接口的时候是很简单的。因为不用找尾&#xff0c;写起来会舒服一点。&#xff08;也可能是因为最近一直在写这个的原因&#xff09; #pragma once #include<std…

List.h

相较于之前的顺序表和单向链表,双向链表的逻辑结构稍微复杂一些,但是在实现各种接口的时候是很简单的。因为不用找尾,写起来会舒服一点。(也可能是因为最近一直在写这个的原因)

#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>typedef int LTDataType;
typedef struct ListNode
{struct ListNode* prev;LTDataType data;struct ListNode* next;}LTNode;LTNode* LTInit();
void LTDestroy(LTNode* phead);
void LTPrint(LTNode* phead);
//bool LTEmpty(LTNode* phead);void LTPushBack(LTNode* phead, LTDataType x);
void LTPopBack(LTNode* phead);void LTPushFront(LTNode* phead, LTDataType x);
void LTPopFront(LTNode* phead);
//在pos位置之后插入数据
void LTInsert(LTNode* pos, LTDataType x);
void LTErase(LTNode* pos);
LTNode* LTFind(LTNode* phead, LTDataType x);

List.c

在实现接口的时候,除了没有找尾,其他的操作和单向链表是差不多的,这里就不多说了。(注意代码里的注释)

#define _CRT_SECURE_NO_WARNINGS 1#include"List.h"LTNode* BuyNode(LTDataType x)
{LTNode* node = (LTNode*)malloc(sizeof(LTNode));if (node == NULL){perror("malloc is fail!");exit(1);}node->data = x;node->prev = node->next = node;return node;
}LTNode* LTInit()
{LTNode* phead = BuyNode(-1);return phead;
}void LTPrint(LTNode* phead)
{assert(phead);LTNode* pcur = phead->next;while (pcur != phead){printf("%d->",pcur->data);pcur = pcur->next;}printf("\n");//注意换行
}void LTPushBack(LTNode* phead, LTDataType x)
{assert(phead);LTNode* newnode = BuyNode(x);newnode->prev = phead->prev;newnode->next = phead;newnode->prev->next = newnode;phead->prev = newnode;
}void LTPopBack(LTNode* phead)
{assert(phead && phead->next != phead);//第二个很容易忽视!LTNode* del = phead->prev;del->prev->next = phead;phead->prev = del->prev;free(del);del = NULL;
}void LTPushFront(LTNode* phead, LTDataType x)
{assert(phead);LTNode* newnode = BuyNode(x);phead->next->prev = newnode;newnode->next = phead->next;phead->next = newnode;newnode->prev = phead;
}void LTPopFront(LTNode* phead)
{assert(phead && phead->next != phead);LTNode* del = phead->next;del->next->prev = phead;phead->next = del->next;free(del);del = NULL;
}LTNode* LTFind(LTNode* phead, LTDataType x)
{assert(phead && phead->next != phead);LTNode* pcur = phead->next;while (pcur != phead){if (pcur->data == x)//别忘了连等号!!!return pcur;pcur = pcur->next;}return NULL;
}void LTErase(LTNode* pos)
{assert(pos);pos->next->prev = pos->prev;pos->prev->next = pos->next;free(pos);pos = NULL;
}void LTInsert(LTNode* pos, LTDataType x)
{assert(pos);LTNode* newnode = BuyNode(x);pos->next->prev = newnode;newnode->next = pos->next;newnode->prev = pos;pos->next = newnode;
}void LTDestroy(LTNode* phead)//理论上这里应该传二级指针,但是为了保持接口的一致性,用一级。
{assert(phead);LTNode* des = phead->next;while (des != phead){LTNode* next = des->next;free(des);des = next;}free(phead);phead = des = NULL;
}

本博客旨在记录学习过程,以后忘了随时来看。

http://www.fp688.cn/news/163888.html

相关文章:

  • 建建建设网站公司网站如何做一个自己的网站
  • 广州做网站优化优化公司怎么优化网站的
  • 昆山网站网络营销的案例有哪些
  • 香港空间送网站seo公司赚钱吗
  • 做设计什么网站平台好点做私活百度推广投诉人工电话
  • 国际贸易网站建设互联网app推广具体怎么做
  • 自助建站公司衡水今日头条新闻
  • qplayer wordpress搜索引擎优化的方式
  • 杭州网站seo推广软件百度后台推广登录
  • 住房和城乡建设部网站建筑电工画质优化app下载
  • 美食网站建设设计方案如何优化培训体系
  • 网站建设方案详解株洲百度seo
  • wordpress 企业整站西安seo外包
  • 黄骅市人民法院网站seo站外优化
  • 做外贸网站挣钱吗北京百度快照推广公司
  • 网站开发vs2013微信腾讯会议
  • 做计划的网站月入百万的游戏代理
  • xxx网站建设规划书2345网址导航下载桌面
  • 麻城做网站西安seo专员
  • 像聚美网站建设费用手机优化是什么意思
  • 做公司年报网站登录密码是什么俄罗斯引擎搜索
  • 深圳做外贸网站网络营销招聘岗位有哪些
  • 网站模板下载工具16种营销模型
  • 网站架构怎么做潍坊自动seo
  • 学生做网站作品图片怎么做推广让别人主动加我
  • 在阿里云做视频网站需要什么条件互联网推广公司
  • 用于网站建设的费用怎么备注百度快照如何优化
  • 课程网站建设情况关键词大全
  • 美国最大的vps网站策划
  • 长春网站建设小程国内十大搜索引擎网站