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

网站设计知名企业常见的网站推广方式

网站设计知名企业,常见的网站推广方式,做网站编辑的时候没保存怎么,wordpress首页加载慢目录 (一)单链表的结构定义及初始化 (二)单链表的尾插,头插 (三)单链表的尾删,头删 (四)单链表的查找,删除,销毁 单链表是数据结构课程里的第二个数据结构。单链表在逻辑结构是连续的,在物理…

目录

(一)单链表的结构定义及初始化

(二)单链表的尾插,头插

 

(三)单链表的尾删,头删

(四)单链表的查找,删除,销毁


单链表是数据结构课程里的第二个数据结构。单链表在逻辑结构是连续的,在物理结构不一定连续。因为在单链表的每一个结点的内存是在堆区动态开辟的,由操作系统来决定是否连续开辟在相同的区域。


(一)单链表的结构定义及初始化

#define SLDataType int//单链表的结构定义
typedef struct SingleList
{SLDataType val;struct SingleList* next;
}SL;

单链表的每一个节点都有其数值域和指针域。数值域是当前结点所存储的数值,指针域是存储指向下一个结点的指针。这里我们定义一个宏,把SLDataType 替换成int,以后想换存储的数据类型就方便多了。我们再把单链表的数据类型struct SingleList重命名为SL。

//单链表的初始化
void InitSingleList(SL* phead)
{assert(phead);phead->val = 0;phead->next = NULL;
}

(二)单链表的尾插,头插

单链表的尾插是指在单链表的结尾插进去一个新结点。我们可以创建一个函数专门封装创建一个新结点的过程

//创建一个新结点
SL* BuyNewNode(SLDataType x)
{SL* NewNode = (SL*)malloc(sizeof(SL));if (NewNode == NULL){perror("malloc fail!\n");eixt(1);    }//走到这说明新结点的内存创建成功NewNode->val = x;NewNode->next = NULL;return NewNode;
}

每次创建结点的时候必须要检查结点是否创建失败,而且要记得要释放空间。我们这里通过malloc申请了一片SL大小的空间。并将申请的空间解释为SL*类型,把SL里面的值赋值为x,下一个结点指向为NULL指针。

//单链表的尾插
void SingleListPushBack(SL** pphead, SLDataType x)
{//这里需要用二级指针,因为可能传进来的指针没有结点,尾插变成头插,需要对头结点的地址进行赋值。assert(pphead);SL* phead = *pphead;if (phead == NULL){//说明单链表没有一个结点,需要修改头结点的地址phead = BuyNewNode(x);}else{//需要遍历链表找到尾结点SL* pcur = phead;while (pcur){pcur = pcur->next;}//我们要让链表后面的顺序为   pcur  ->  NewNodepcur->next = BuyNewNode(x);}
}
//单链表的头插
void SingleListPushFront(SL** pphead, SLDataType x)
{   assert(pphead);//同样的头插就更需要传二级指针了SL* phead = *pphead;//NewNode  -> phead;SL* NewNode = BuyNewNode(x);NewNode->next = phead;phead = NewNode;
}

(三)单链表的尾删,头删

同样的操作

//单链表的尾删
void SingleListPopBack(SL** pphead)
{assert(pphead && *phead);SL* phead = *pphead;//如果单链表只有一个结点if (phead-> next == NULL){free(phead);phead = NULL;}else{//需要遍历查找链表尾部SL* pcur = phead;SL* prev = NULL;while (pcur->next){prev = pcur;pcur = pcur->next;}//  pcur  pcur->nextprev->next = NULL;free(pcur->next);pcur->next = NULL;}
}
//单链表的头删
void SingleListPopFront(SL** pphead)
{   assert(pphead && *pphead);SL* phead = *pphead;// phead phead->next;SL* next = phead->next;free(phead);phead = next;
}

(四)单链表的查找,删除,销毁
//单链表的查找
SL* FindSingleList(SL* phead, SLDataType x)
{assert(phead);SL* pcur = phead;while (pcur){    if (pcur->val == x)return pcur;pcur = pcur->next;}return NULL;
}
//删除pos结点
void SLTErase(SLTNode** pphead, SLTNode* pos)
{assert(pphead && pos);//pos就是头结点if (pos == *pphead){SLTPopFront(pphead);}else {SLTNode* prev = *pphead;while (prev->next != pos){prev = prev->next;}//prev pos pos->nextprev->next = pos->next;free(pos);pos = NULL;}
}
//单链表的销毁
void SListDestroy(SLTNode** pphead)
{SLTNode* pcur = *pphead;while (pcur){SLTNode* next = pcur->next;free(pcur);pcur = next;}*pphead = NULL;
}

http://www.dtcms.com/wzjs/156064.html

相关文章:

  • 制作公司宣传册宝鸡seo
  • 全运会网站建设方案新闻热点事件2024最新
  • 网站开发论文开题报告网站如何发布
  • 素材分享网站源码如何自己制作网页
  • 如何给网站做排名优化百度推广营销
  • 天站网站建设百度官网首页
  • 西安市建设协会网站网站关键词排名seo
  • 福建省鑫通建设有限公司网站网页推广怎么做
  • 上海建设工程咨询网站广告投放平台公司
  • 成都最好的汽车网站建设可以下载新闻视频的网站
  • 网站出租建设最近实时热点事件
  • 重庆建设摩托官方网站自媒体营销
  • 我做网站可以赚钱吗手机百度2020最新版
  • 湛江免费建站平台网站制作和推广
  • 专业做网站建设的公司百度快速提交入口
  • 网站建站销售怎么做免费个人网站建站申请
  • 农产品跨境电商平台有哪些企业站seo
  • 手机怎么做黑网站网站域名查询地址
  • 做app网站的公司名称广告联盟骗局
  • 合肥建设工程交易网站网址提交百度
  • 网站做优化有必要吗360广告推广平台
  • 宿州网站建设零聚思放心纯手工seo公司
  • 做网站项目前期工作包括哪些2022最近的新闻大事10条
  • 网页设计与制作教程第四版课后答案网站优化关键词排名公司
  • wordpress pingseo技术服务外包
  • 棋牌游戏wordpressseo营销名词解释
  • h5网站建设是什么意思如何优化seo
  • 网站开发导航qq营销
  • 建设网站多少费用网络推广的方式有哪些
  • 微信、网站提成方案点做东营网站推广公司