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

企业做的网站推广方案的步骤百度搜图匹配相似图片

企业做的网站推广方案的步骤,百度搜图匹配相似图片,比较好的做淘客网站,做团购网站需要注册哪些商标在学习Linux之间我们先插入一下链表的知识 学习链表(一种数据结构思想) 链表和数组的区别和实现: 链表(链表是个好东西) 链表概念(什么是链表)? 链表就是数据结构->数据的存储…

在学习Linux之间我们先插入一下链表的知识

学习链表(一种数据结构思想)

链表和数组的区别和实现:

链表(链表是个好东西)

链表概念(什么是链表)?

链表就是数据结构->数据的存储思想

链表的每一项都是一个结构体

        说到数据存放,我们之前学过数组结构体,而且数组一开始就把大小确认了比如int arr[10],还有地址也都是连续的,因此我们需要对数组或者结构体进行增删改查的时候就会显得很不灵活,因为内存消耗很大所以我们有了链表的概念

Tips回顾:

数组的特点:每个元素的地址是连续的

                                                        链表的原理和解释图

链表的实现

t1是链表头  有点像数组首地址通过p++得到后面的元素

链表的动态遍历

添加上查找和计算链表元素个数的功能

这边定义一个found是很巧妙的,count 不断累加记录节点数,found 记录是否找到目标值

        使用 found 变量后,只需要在循环内部判断是否找到目标值,若找到就将 found 置为 1 ,循环结束后再根据 found 的值进行统一的输出判断,使代码逻辑更加简洁明了。

链表的从指定节点后方插入新节点

主要是insertBehindNum这段代码

因为链表有增删改查这些操作,所以这边我直接把链表的增删改查都写出来

这个代码里面包含了前插法(增),后插法(增),删除指定元素,改元素,查元素其中前插法和后插法

代码在这

#include <stdio.h>

struct Test

{

int data;

struct Test *next;

};

void printfInfo(struct Test *head)

{

struct Test *point;

point = head;

while(point !=NULL){

printf("%d ",point->data);

point =point->next;

}

putchar('\n');

}

int  printfInfo1(struct Test *head,int data)

{

int count = 0;

int found = 0;

struct Test *point;

point = head;

while(point !=NULL){

count++;

if((point->data) == data){

found=1;

}

point = point->next;

}

if(found==1){

printf("have\n");

}else{

printf("no\n");

}

return count;

}

struct Test * gaiNum(struct Test *head,int data,int newdata)

{

struct Test *p;

p = head;

while(p !=NULL){

if(p->data == data){

p->data=newdata;

}

p = p->next;

}

return head;

}

struct Test *insertBehindNum(struct Test *head,int data,struct Test *new)

{

struct Test *p;

p=head;

while(p != NULL){

if(p->data == data){

new->next= p->next;

p->next  = new;

return head;

}

    p = p->next;

}

return head;

}

struct Test *insertbeforeNum(struct Test *head,int data,struct Test *new)

{

struct Test *p;

p=head;

if(p->data == data){

new->next=p;

    printf("insert ok\n");

return new;

}

while(p->next != NULL){

if(p->next->data==data){

new->next = p->next;

  p->next = new;

  printf("insert ok\n");

  return head;

}

p = p->next;

}

return head;

}

struct Test *deleteNum(struct Test *head,int data)

{

struct Test *p;

p=head;

if(p->data == data){

p=p->next;

printf("delete ok\n");

return head;

}

while(p->next != NULL){

if(p->next->data == data){

p->next = p->next->next;

printf("delete ok~\n");

return head;

}

p = p->next;

}

return head;

}

int main()

{

 int count;

 struct Test *head = NULL;

 struct Test t1={1,NULL};

 struct Test t2={2,NULL};

 struct Test t3={3,NULL};

 struct Test t4={4,NULL};

 struct Test new={100,NULL};

 struct Test new2={999,NULL};

 struct Test new3={888,NULL};

 t1.next=&t2;

 t2.next=&t3;

 t3.next=&t4;

 printfInfo(&t1);

 count = printfInfo1(&t1,4);//查

 printf("链表元素个数为%d\n",count);

 head=insertBehindNum(&t1,3,&new);//在后方插入

 printfInfo(head);

 head = insertbeforeNum(&t1,3,&new2);//在前方插入

 printfInfo(head);

 head = insertbeforeNum(&t1,1,&new3);//在前方插入

 printfInfo(head);

 head = deleteNum(&t1,1);//删除

 printfInfo(head);

 head = gaiNum(&t1,1,40);//改

 printfInfo(head);

 return 0;

}

        看完之后是这样的我们是初学者那么我们就不应该考虑链表的效率问题,我们要先理解链表的含义和和操作原理,那么我们之后有更好的基础了之后,就可以去考虑链表的效率问题了。

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

相关文章:

  • 海口企业网站建设企业营销策划方案
  • 成功备案的网站增加域名网络营销第三版课本
  • 唐山外贸网站建设佛山今日头条
  • 做网站找哪家好?聚禄鼎科技是一家给企业做网站的公司广告类的网站
  • 如何帮助网站吸引流量昆明长尾词seo怎么优化
  • 网站被做跳转怎么办网页生成
  • 网站开发设计文档模板广州网站优化公司如何
  • 模拟网站效果广安网站seo
  • 网站优化具体做哪些事情windows优化大师怎么卸载
  • 网站开发详细流程站长工具收录查询
  • 盛大正版传奇世界手游品牌搜索引擎服务优化
  • 迅美网站建设网站收录查询
  • 浙江微信网站建设报价百度移动版
  • 做网站用买服务器码谷歌优化排名怎么做
  • 主题资源网站建设步骤西安计算机培训机构哪个最好
  • 企业网站优化系统广州网站建设费用
  • 雅奇小蘑菇做网站好不好用seosem是什么职位
  • 建设个人网站刷有效的网络推广
  • 做封面的软件ps下载网站软文有哪些发布平台
  • 公司做网站费用怎么记账长尾词排名优化软件
  • 东营 微信网站建设网络销售平台排名
  • 网络科技有限公司有哪些岗位安卓优化大师手机版下载
  • 临汾网站建设价格seo搜索优化排名
  • 乐清建网站信息流优化师培训
  • 如何做自己的淘宝客网站百度地图收录提交入口
  • 潍坊做网站的公司市场营销教材电子版
  • 一般网站的架构网络营销师是做什么的
  • 做网站的必要性最稳定的灰色词排名
  • 版面设计网站seo搜索引擎招聘
  • 网站建设供应商税点室内设计网站