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

惠州做网站 百度优化google推广平台怎么做

惠州做网站 百度优化,google推广平台怎么做,网页制作培训教案,深圳市福田区建设局网站单向链表 typedef int datatype; //由于有效数据不一定是正数,所以将数据重命名。typedef struct lklst{ //不能是无名结构体了,因为定义指针域的时候需要使用union{int len; //头结点时候使用;datatype data; …

 单向链表

typedef int datatype;   //由于有效数据不一定是正数,所以将数据重命名。typedef struct lklst{   //不能是无名结构体了,因为定义指针域的时候需要使用union{int len;                   //头结点时候使用;datatype data;           //有效数据结点时候使用;}text;                   //数据域,存储数据struct lklst *next;     //指针域,指向下一个结点,存储下一个结点的首地址
}Linklist;

创建空的单链表

Linklist * createlinklist(void){//在堆空间中申请头结点//判断是否生成 成功Linklist *link=(Linklist*) malloc(sizeof(Linklist));//malloc申请堆空间,返回的是void*类型所以需要强转成需要的类型if(link == NULL){printf("堆空间申请失败");return NULL;}link->next=NULL;link->text.len=0;return link;
}

头插

//头插法插入数据
void insert_linklistByHead(Linklist *head,datatype data){//创建节点Linklist * temp=(Linklist*) malloc(sizeof(Linklist));if(temp == NULL){printf("堆空间申请失败");return ;}temp->next=NULL;temp->text.data=data;//temp->next=head->next;head->next=temp;//更新头节点数据的长度head->text.len++;return;
}

尾插

//尾插法插入数据
void insert_linklistByEnd(Linklist *head,datatype data){//创建节点Linklist * temp=(Linklist*) malloc(sizeof(Linklist));if(temp == NULL){printf("堆空间申请失败");return ;}temp->next=NULL;temp->text.data=data;Linklist * read =head;//找到尾节点while(read->next!=NULL){read =read->next;}read->next=temp;//更新长度head->text.len++;
}

按位置插入

//按位置插入
void insert_linklistByPosition(Linklist *head,datatype data,int n) {if (n < 1) {printf("非法数据\n");return;}Linklist *p = head;for (int i=0;i<n-1;i++) {p=p->next;if(p==NULL){printf("非法数据\n");return;}}Linklist * temp=(Linklist*) malloc(sizeof(Linklist));if(temp == NULL){printf("堆空间申请失败");return ;}temp->text.data=data;temp->next = NULL;
//将temp插入到p结点的后一个位置temp->next=p->next;temp->text.data=data;p->next=temp;//更新长度head->text.len++;return;
}

头删

void delete_linklistByHead(Linklist *head){//判断链表是否为空if(head->next==NULL)return;//先将要释放的结点地址另存Linklist * temp = head->next;//要释放结点中存储下一个结点的地址,给头结点head->next=temp->next;//释放结点free(temp);temp=NULL;//更新长度head->text.len--;return ;
}

尾删

//尾删
void delete_linklistByEnd(Linklist *head){//判断链表是否为空if(head->next==NULL)return;//寻找倒数第二个结点Linklist * temp =head;while(temp->next->next != NULL) {temp = temp->next;}//释放结点free(temp->next);temp->next = NULL;//更新长度head->text.len--;
}

按位置删除

//按位置删除
void delete_linklistByPosition(Linklist *head,int n){if(head->next==NULL){printf("非法数据\n");return;}if(n<1){printf("非法数据\n");return;}//找到要删除结点的前一个节点位置Linklist* p = head;for(int i=0;i<n-1;i++)p=p->next;if(NULL == p->next){printf("n=%d删除位置非法\n",n);return;}//能运行到这个位置,则说明p指向的是要删除的结点的前一个位置Linklist* temp = p->next;p->next = temp->next;free(temp);temp = NULL;//更新长度head->text.len++;return ;
}

 遍历链表

//遍历链表
void Iterative_list(Linklist *head){//读头节点的数据Linklist * read =head;while(read->next!=NULL){read =read->next;datatype data = read->text.data;printf("%d\t",data);}putchar(10);
}


单向循环链表

typedef int datatype;   //由于有效数据不一定是正数,所以将数据重命名。typedef struct loopklst{   //不能是无名结构体了,因为定义指针域的时候需要使用union{int len;                   //头结点时候使用;datatype data;           //有效数据结点时候使用;}text;                   //数据域,存储数据struct loopklst *next;     //指针域,指向下一个结点,存储下一个结点的首地址
}LoopLinklist;
//创建一个空的单链表
LoopLinklist * create_recurringlinklist(void) {LoopLinklist * head = (LoopLinklist *) malloc(sizeof(LoopLinklist));if (NULL == head){printf("单向循环链表创建失败\n");return NULL;}head->text.len =0;//头结点中记录的链表长度赋值为0head->next =head;//将指针域指向自己return head;
}

头插

//头插
void insert_recurringlinklistByHead(LoopLinklist *head,datatype data){//创建节点LoopLinklist * temp=(LoopLinklist*) malloc(sizeof(LoopLinklist));LoopLinklist * p=head;if(temp == NULL){printf("堆空间申请失败");return ;}temp->text.data=data;temp->next=p->next;head->next=temp;//更新头节点数据的长度head->text.len++;return;
}

尾插

//尾插
void insert_recurringlinklistByEnd(LoopLinklist *head,datatype data){LoopLinklist *temp=(LoopLinklist *) malloc(sizeof (LoopLinklist ));if(temp==NULL){printf("创建失败");return;}LoopLinklist * p=NULL;p=head;while(p->next!=head){p=p->next;}temp->next=head;temp->text.data=data;p->next=temp;head->text.len++;return;
}

按位置插入

void insert_recurringlinklistByPosition(LoopLinklist *head,datatype data,int n){if (n < 1) {printf("非法数据\n");return;}LoopLinklist *p = head;for (int i=0;i<n-1;i++) {p=p->next;if(p==NULL){printf("非法数据\n");return;}}LoopLinklist * temp=(LoopLinklist*) malloc(sizeof(LoopLinklist));if(temp == NULL){printf("堆空间申请失败");return ;}temp->text.data=data;temp->next = NULL;//将temp插入到p结点的后一个位置temp->next=p->next;temp->text.data=data;p->next=temp;//更新长度head->text.len++;return;
}

头删

//头删
void delete_recurringlinklistByHead(LoopLinklist *head){LoopLinklist *temp=head->next;if(head->next==head){printf("链表为空,删除失败");return;}temp=temp->next;free(head->next);head->next=temp;return;
}

尾删

//尾删
void delete_recurringlinklistByEnd(LoopLinklist *head){//判断链表是否为空LoopLinklist *p=head;if(head->next==head){printf("链表为空");return;}//找到倒数第二个结点while(p->next->next!=head){p=p->next;}//free(p->next);p->next=head;//更新长度head->text.len--;return;
}

按位置删除

//位置删除
void delete_recurringlinklistByPosition(LoopLinklist *head,int n){if(head->next==head){printf("非法数据\n");return;}if(n<1){printf("非法数据\n");return;}//找到要删除结点的前一个节点位置LoopLinklist* p = head;for(int i=0;i<n-1;i++)p=p->next;if(p->next==head){printf("n=%d删除位置非法\n",n);return;}//能运行到这个位置,则说明p指向的是要删除的结点的前一个位置LoopLinklist* temp = p->next;p->next = temp->next;free(temp);temp = NULL;//更新长度head->text.len++;return ;
}

遍历链表

//遍历循环单向链表
void Iterative_recurringlinklist(LoopLinklist *head){//读头节点的数据LoopLinklist * read =head;while(read->next!=head){read =read->next;datatype data = read->text.data;printf("%d\t",data);}putchar(10);
}

双向链表

typedef int datatype;   //由于有效数据不一定是正数,所以将数据重命名。typedef struct Dublinklist{   //不能是无名结构体了,因为定义指针域的时候需要使用union{int len;                   //头结点时候使用;datatype data;           //有效数据结点时候使用;}text;                   //数据域,存储数据struct loopklst *prev;  //指针域,指向上一个结点,存储上一个结点的首地址struct loopklst *next;     //指针域,指向下一个结点,存储下一个结点的首地址
}Dublist;
Dublist * create_Dublinklist(void){//判断是否生成 成功Dublist *link=(Dublist*) malloc(sizeof(Dublist));//malloc申请堆空间,返回的是void*类型所以需要强转成需要的类型if(link == NULL){printf("堆空间申请失败");return NULL;}link->prev=NULL;link->next=NULL;link->text.len=0;return link;
}

头插

void insert_DublistByHead(Dublist *head,datatype data){Dublist *temp=(Dublist *) malloc(sizeof (Dublist));if(temp==NULL){printf("堆空间申请失败");return;}Dublist *p=head;temp->text.data=data;//nexttemp->next=head->next;head->next=temp;//prvetemp->prev=head;if(temp->next!=NULL){temp->next->prev=temp;}head->text.len++;return;
}

尾插

void insert_DublistByEnd(Dublist *head,datatype data){Dublist *temp=(Dublist *) malloc(sizeof (Dublist));if(temp==NULL){printf("堆空间申请失败");return;}Dublist *p=head;temp->text.data=data;//找尾部的位置while(p->next!=NULL){p=p->next;}//nexttemp->next=p->next;p->next=temp;//prvetemp->prev=p;//更新长度head->text.len++;return;
}

按位置插入

//按位置插入
void insert_DublistByPosition(Dublist *head,datatype data,int n) {if (n < 1) {printf("非法数据\n");return;}Dublist *p = head;for (int i=0;i<n-1;i++) {p=p->next;if(p==NULL){printf("非法数据\n");return;}}Dublist * temp=(Dublist*) malloc(sizeof(Dublist));if(temp == NULL){printf("堆空间申请失败");return ;}temp->text.data=data;temp->next = NULL;
//将temp插入到p结点的后一个位置temp->next=p->next;temp->text.data=data;p->next=temp;//更新长度head->text.len++;return;
}

头删

//头删
void delete_DublistByHead(Dublist *head){if(head->next==NULL){printf("非法数据\n");return;}Dublist * temp=head->next;head->next=temp->next;head->next->prev=head;free(temp);temp=NULL;return;
}

尾删

void delete_DublistByEnd(Dublist *head){Dublist * p=head;//判断链表是否为空if(head->next==NULL)return;//寻找倒数第二个结点Dublist * temp =head;while(temp->next->next != NULL) {temp = temp->next;}//释放结点free(temp->next);temp->next = NULL;//更新长度head->text.len--;return;
}

按位置删除

//按位置删除
void delete__DublistByPosition(Dublist*head,int n){if(head->next==NULL){printf("非法数据\n");return;}if(n<1){printf("非法数据\n");return;}//找到要删除结点的前一个节点位置Dublist* p = head;for(int i=0;i<n-1;i++)p=p->next;if(NULL == p->next){printf("n=%d删除位置非法\n",n);return;}//能运行到这个位置,则说明p指向的是要删除的结点的前一个位置Dublist* temp = p->next;p->next = temp->next;free(temp);temp = NULL;//更新长度head->text.len++;return ;
}


 

http://www.mmbaike.com/news/98046.html

相关文章:

  • 网站页面设计说明怎么写百度推广投诉热线
  • 现在的公司都有自己的网站吗淘宝seo排名优化的方法
  • 23个超好玩的网页小游戏临沂seo排名外包
  • 做服装要看国外哪些网站2021年网络营销考试题及答案
  • 衢州做外贸网站的公司个人博客网页设计html
  • 烟台市铁路建设管理局网站百度下载安装到桌面
  • 做自媒体必备的8个网站东莞做网站推广的公司
  • 有哪些做壁纸的网站好seo平台是什么意思
  • 怎么用服务器做局域网网站seo行业网
  • 池州市建设厅官方网站免费网站制作成品
  • wordpress主题开发网站投放广告的网站
  • 网站托管服务协议兰州seo优化公司
  • 嘉兴制作网站软文是什么意思?
  • 建设一个班级网站的具体步骤网址浏览大全
  • 高端平面网站常见的网络营销方式有哪几种
  • 营销型网站策划seo用什么工具
  • 用别人的电影网站做公众号天津百度推广网络科技公司
  • 沭阳建设网站广告代理公司
  • 网站建设费用应该开专票还是普票优化seo排名
  • 做奢侈品网站有哪些百度推广退款投诉
  • 哪里网站备案百度网页收录
  • 做网站前的准备工作网站推广优化设计方案
  • 域名注册哪个好360seo
  • 住房建设部投诉网站如何建立一个网站
  • 高端的赣州网站建设谷歌代理
  • 电影网站如何做不侵权广州关于进一步优化疫情防控措施
  • 好用的网站后台管理系统推广网址
  • 常州网站建设培训免费的seo网站
  • 网站建设链接友情链接也称为
  • 打开一张图片后点击跳转到网站怎么做北京整站线上推广优化