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

武冈网站建设多少钱网络营销概述ppt

武冈网站建设多少钱,网络营销概述ppt,google建网站,工程项目挂网在什么网站上看一.实现单向链表的头插,头删,尾插,尾删,按位置插,按位置删,按位置修改,按元素查找,按元素修改,按元素删除,单链表的逆置,查找倒数第几个元素&…

一.实现单向链表的头插,头删,尾插,尾删,按位置插,按位置删,按位置修改,按元素查找,按元素修改,按元素删除,单链表的逆置,查找倒数第几个元素,释放内存。

头文件:head.h

 #ifndef __HEAD_H__                                                         #define __HEAD_H__                                                         #include <stdio.h>                                                         #include <string.h>                                                        #include <stdlib.h>                                                        typedef int datatype;                                                      enum passble{success,false=-1};                                            typedef struct Node                                                        {                                                                          datatype data;                                                         struct Node* next;                                                     }*Linklist;                                                                Linklist Create_Node();                                                    Linklist head_insert(Linklist head,datatype element);                      void show(Linklist head);                                                  Linklist head_delete(Linklist head);                                       Linklist tail_insert(Linklist head,datatype element);                      Linklist tail_delete(Linklist head);                                       int getlen(Linklist head);                                                 Linklist pos_insert(Linklist head,int pos,datatype element);               Linklist delete_index(Linklist head,int pos);                              Linklist change_index(Linklist head,int pos,datatype element);             int find_index(Linklist head,int pos);                                     int value(Linklist head,datatype element);                                 Linklist change_value(Linklist head,datatype element,datatype data1);      Linklist delete_value(Linklist head,datatype element);                     int find_value(Linklist head,int pos);                                     Linklist swap(Linklist head);                                              void free_list(Linklist head);                                             #endif                                                                     

测试文件(test.c)

#include"head.h"//创建节点
Linklist Create_Node()
{Linklist s=(Linklist)malloc(sizeof(struct Node));if(NULL==s)return NULL;s->data=0;s->next=NULL;return s;
}
//头插
Linklist head_insert(Linklist head,datatype element)
{Linklist s=Create_Node();s->data=element;if(NULL==head)head=s;else{s->next=head;head=s;}return head;
}//头删
Linklist head_delete(Linklist head)
{if(NULL==head)return NULL;Linklist p=head;head=head->next;free(p);p=NULL;return head;
}//尾插
Linklist tail_insert(Linklist head,datatype element)
{Linklist s=Create_Node();s->data=element;if(NULL==head){head=s;}{Linklist p=head;while(p->next){p=p->next;}p->next=s;}return head;
}//尾删
Linklist tail_delete(Linklist head)
{if(NULL==head)return NULL;else if(head->next==NULL){free(head);head=NULL;}else{Linklist p=head;while(p->next->next!=NULL){p=p->next;}free(p->next);p->next=NULL;}return head;
}//计算链表的长度
int getlen(Linklist head)
{int count=0;Linklist p=head;while(p){count++;p=p->next;}return count;
}//按位置插入值
Linklist pos_insert(Linklist head,int pos,datatype element)
{Linklist s=Create_Node();s->data=element;Linklist p=head;if(pos<1||pos>getlen(head)+1)return head;if(pos==1){head=head_insert(head,element);return head;}for(int i=1;i<pos-1;i++){p=p->next;}s->next=p->next;p->next=s;return head;
}//按位置删除
Linklist delete_index(Linklist head,int pos)
{if(pos<1||pos>getlen(head))return head;if(pos==1){head=head_delete(head);return head;}Linklist p=head;for(int i=1;i<pos-1;i++){p=p->next;}Linklist del=p->next;p->next=del->next;free(del);del=NULL;return head;
}//按位置修改
Linklist change_index(Linklist head,int pos,datatype element)
{//判断修改的位置是否合法if(pos<1||pos>getlen(head)){return head;}Linklist p=head;for(int i=1;i<pos;i++){p=p->next;}p->data=element;return head;}//按位置查找返回值
int find_index(Linklist head,int pos)
{if(NULL==head)return 0;if(pos<1||pos>getlen(head)){return 1 ;}Linklist p=head;for(int i=1;i<pos;i++){p=p->next;}return p->data;
}//按值查找返回位置
int value(Linklist head,datatype element)
{if(NULL==head)return 0;Linklist p=head;for(int i=1;i<=getlen(head);i++){if(p->data==element){return i;}p=p->next;}return 0;
}//按值修改
Linklist change_value(Linklist head,datatype element,datatype data1)
{int j=value(head,element);head=change_index(head,j,data1);return head;
}//按值删除
Linklist delete_value(Linklist head,datatype element)
{int j=value(head,element);head=delete_index(head,j);return head;
}//查找倒数第几个元素的值
int find_value(Linklist head,int pos)
{if(NULL==head)return 0;if(pos<1||pos>getlen(head))return 1;Linklist p=head;Linklist q=head;for(int i=1;i<pos;i++){p=p->next;}while(p->next){p=p->next;q=q->next;}return q->data;
}//单链表的逆置
Linklist swap(Linklist head)
{if(NULL==head)return head;if(getlen(head)==1)return head;Linklist p=head->next;head->next=NULL;while(p){Linklist s=p;p=p->next;s->next=head;head=s;}return head;
}//释放内存
void free_list(Linklist head)
{Linklist s=head;while(s){s=s->next;head=head_delete(head);}return ;
}//输出
void show(Linklist head)
{if(NULL==head){return;}Linklist p=head;while(p!=NULL){printf("%d\t",p->data);p=p->next;}putchar(10);
}

主文件(main.c)

#include"head.h"
int main(int argc, const char *argv[])
{//头插Linklist head=NULL;int n;datatype element;printf("请输入头插要插入几个数据:");scanf("%d",&n);for(int i=0;i<n;i++){printf("请输入头插插入的数据:");scanf("%d",&element);head=head_insert(head,element);}head=head_delete(head);      //头删show(head);//尾插printf("请输入尾插要插入几个数据:");scanf("%d",&n);for(int i=0;i<n;i++){printf("请输入尾插插入的数据:");scanf("%d",&element);head=tail_insert(head,element);}head=tail_delete(head);       //尾删show(head);int pos;                     //任意位置插printf("请输入要插入数据的位置:");scanf("%d",&pos);printf("请输入插入的数据:");scanf("%d",&element);head=pos_insert(head,pos,element);show(head);/*								//任意位置删printf("请输入要删除数据的位置:");scanf("%d",&pos);head=delete_index(head,pos);show(head);//任意位置修改printf("请输入要修改数据的位置:");scanf("%d",&pos);printf("请输入修改后的值:");scanf("%d",&element);head=change_index(head,pos,element);show(head);//按位置查找printf("请输入要查找的位置:");scanf("%d",&pos);datatype data=find_index(head,pos);if(data==0){printf("链表为空\n");}else if(data==1){printf("输入不合理\n");}else{printf("查找位置的值为:%d\n",data);}//按值查找返回位置printf("请输入要查找的值:");scanf("%d",&element);pos=value(head,element);if(pos==0){printf("没有这个元素\n");}else{printf("要查找的值的位置为:%d\n",pos);}//按值修改datatype data1;//修改后的值printf("请输入要修改的元素:");scanf("%d",&element);printf("请输入修改后的值:");scanf("%d",&data1);head=change_value(head,element,data1);show(head);
*///按值删除printf("请输入要删除的元素:");scanf("%d",&element);head=delete_value(head,element);show(head);//查找倒数第几个元素的值printf("请输入倒数的位置:");scanf("%d",&pos);int k=find_value(head,pos);if(k==0){printf("链表不存在");}else if(k==1){printf("输入的位置不合理");}else{printf("%d\n",k);}//单链表的逆置head=swap(head);printf("链表逆置后的结果为:\n");show(head);//释放内存free_list(head);return 0;
}

运行结果:

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

相关文章:

  • 网站建设需要什么资质建设公司网站大概需要多少钱?
  • 佛山市企业网站seo报价适合成人参加的培训班
  • 手机端网站排名盐城seo网站优化软件
  • 内部网站做域名解析到端口seo免费资源大全
  • 宿州精品网站建设百度网盘手机版
  • 关于党建网站建设的建议上海百度整站优化服务
  • 县级网站建设培训会网站开发软件有哪些
  • 医院网站建设 中企动力重庆网站关键词排名
  • 长春网站排名推广企业建站都有什么网站
  • wordpress修改目录河南网站关键词优化
  • 早晨设计 做网站设计吗视频号推广
  • 百度 网站速度诊断seo建站收费地震
  • 靠谱的建站公司哪家专业qq推广链接生成
  • 南宁seo湖南seo快速排名
  • cc域名做网站怎么样广告文案经典范例200字
  • 做竞争小的网站最新今日头条
  • 网站做中英文切换crm软件
  • 沈阳网站建设优秀公司网站目录提交
  • 手机网站头部图片怎么做深圳网站建设推广
  • 分类信息网站的建设维护优化大师apk
  • 怎么制作网站镜像制作网页完整步骤
  • 塔式服务器主机建网站产品软文怎么写
  • 建设网站的公司济南兴田德润o评价百度拍照搜索
  • 全国公安网站备案电商网站建设 网站定制开发
  • 网站建设时间影响因素宁波seo推广方式排名
  • 佛山h5建站模板百度百科优化排名
  • 做网站需要交印花税兰州网络推广的平台
  • 外国做ppt的网站宁波网站推广方式怎么样
  • 手机交互设计网站营销策略案例
  • 门户网站 建设 通知济南百度开户电话