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

长春市快速建站网站品牌软文范文

长春市快速建站网站,品牌软文范文,哪些网站的登陆界面做的好看,专业的网站搭建多少钱递归实现链表数据互换,纯不会,明天再说 1、链表实现以下功能 链表,创建链表,申请节点,判空,头插,遍历输出,通过位置查找节点,任意位置插入,头删,…

 递归实现链表数据互换,纯不会,明天再说


1、链表实现以下功能

链表,创建链表,申请节点,判空,头插,遍历输出,通过位置查找节点,任意位置插入,头删,任意位置删除,安置查找返回位置,按位置进行修改,按值进行修改,翻转链表,释放链表,链表的排序,反转链表(递归实现)

//link_list.h
#ifndef LINK_LIST_H
#define LINK_LIST_H
#include <myhead.h>typedef int datatype;typedef struct Node
{union{int len;datatype data;};struct Node *next;
}Node,*NodePtr;//创建链表
NodePtr list_create();//申请结点封装数据的函数
NodePtr apply_node(datatype e);//链表判空
int list_empty(NodePtr L);//头插
int list_insert_head(NodePtr L,datatype e);//链表遍历函数
int list_show(NodePtr L);//通过位置查找结点
NodePtr list_search_pos(NodePtr L,int pos);//任意位置插入
int list_insert_pos(NodePtr L,int pos,datatype e);//链表头删
int list_delete_head(NodePtr L);//链表任意位置删除
int list_delete_pos(NodePtr L,int pos);//链表按值查找返回位置
int list_search_retval(NodePtr L,datatype e);//链表按位置进行修改
int list_updata_pos(NodePtr L,int pos,datatype e);//按值进行修改
int list_updata_data(NodePtr L,datatype old_e,datatype new_e);//将链表进行翻转
int list_reserve(NodePtr L);//释放链表
void list_destroy(NodePtr L);//链表的排序
int list_sort(NodePtr L);//链表的翻转(递归函数实现)
NodePtr list_reserve1(NodePtr L);#endif

//link_list.c
#include "link_list.h"//创建链表
NodePtr list_create()
{NodePtr L = (NodePtr)malloc(sizeof(Node));if(NULL == L){printf("链表创建失败\n");return NULL;}L->len = 0;L->next = NULL;printf("链表创建成功\n");return L;
}//申请结点封装数据的函数
NodePtr apply_node(datatype e)
{NodePtr p = (NodePtr)malloc(sizeof(Node));if(NULL == p){printf("创建结点失败\n");return NULL;}p->data = e;p->next = NULL;return p;}//链表判空
int list_empty(NodePtr L)
{return L->next == NULL;
}//头插
int list_insert_head(NodePtr L,datatype e)
{if(NULL == L){printf("头插失败\n");}NodePtr p = apply_node(e);p->next = L->next;L->next = p;L->len++;printf("头插成功\n");return 0;
}//链表遍历函数
int list_show(NodePtr L)
{if(NULL == L || list_empty(L)){printf("遍历失败\n");return -1;}printf("链表中的元素是:");NodePtr q = L->next;while(q){printf("%d->",q->data);q = q->next;}printf("NULL\n");
}//通过位置查找结点
NodePtr list_search_pos(NodePtr L,int pos)
{if(NULL == L || list_empty(L) || pos < 0 || pos > L->len){printf("查找失败\n");return NULL;}NodePtr q = L;for(int i = 0;i < pos;i++){q = q->next;}return q;
}//任意位置插入
int list_insert_pos(NodePtr L,int pos,datatype e)
{if(NULL == L || pos < 1 || pos > L->len+1){printf("插入失败\n");return -1;}NodePtr p = apply_node(e);if(p == NULL){return -1;}NodePtr q = list_search_pos(L,pos-1);p->next = q->next;q->next = p;L->len++;printf("插入成功\n");return 0;
}//链表头删
int list_delete_head(NodePtr L)
{if(NULL == L || list_empty(L)){printf("头删失败\n");return -1;}NodePtr q = L->next;L->next = q->next;free(q);q = NULL;L->len--;return 0;
}//链表任意位置删除
int list_delete_pos(NodePtr L,int pos)
{if(NULL == L || list_empty(L) || pos < 1 || pos > L->len){printf("删除失败\n");return -1;}NodePtr q = list_search_pos(L,pos-1);NodePtr p = q->next;q->next = p->next;free(p);p = NULL;L->len--;printf("成功删除第%d个元素\n",pos);return 0;
}//链表按值查找返回位置
int list_search_retval(NodePtr L,datatype e)
{if(NULL == L || list_empty(L)){printf("查找失败\n");return -1;}NodePtr q = L->next;for(int i = 1;i <= L->len;i++){if(q->data == e){return i;}q = q->next;}printf("没有找到该元素\n");return -1;
}//链表按位置进行修改
int list_updata_pos(NodePtr L,int pos,datatype e)
{if(NULL == L || list_empty(L) || pos < 1 || pos > L->len){printf("修改失败\n");return -1;}NodePtr q = list_search_pos(L,pos);q->data = e;printf("按位置修改成功\n");return 0;
}//按值进行修改
int list_updata_data(NodePtr L,datatype old_e,datatype new_e)
{if(NULL == L || list_empty(L)){printf("修改失败\n");return -1;}NodePtr q = L->next;while(q){if(q->data == old_e){q->data = new_e;return 0;}q = q->next;}printf("没有该元素\n");return -1;
}//将链表进行翻转
int list_reserve(NodePtr L)
{if(NULL == L || list_empty(L) || L->len == 1){printf("翻转失败\n");return 0;}NodePtr H = L->next;L->next = NULL;while(H){NodePtr q = H;H = H->next;q->next = L->next;L->next = q;}printf("翻转成功\n");return 0;
}//释放链表
void list_destroy(NodePtr L)
{if(NULL == L){return ;}while(!list_empty(L)){list_delete_head(L);}free(L);L = NULL;printf("释放链表成功\n");
}//链表的排序
int list_sort(NodePtr L)
{if(NULL == L || list_empty(L) || L->len ==1){printf("排序失败\n");return -1;}for (int i = 1; i < L->len; i++) {NodePtr p = L->next;for (int j = 0; j < L->len - i; j++) {if (p->data > p->next->data){int temp = p->data;p->data = p->next->data;p->next->data = temp;}p = p->next;}}	printf("排序成功\n");return 0;
}//链表的翻转(递归函数实现)
NodePtr list_reserve1(NodePtr L)
{if(NULL == L || L->len == 1){printf("翻转失败\n");return L;}NodePtr q = list_reserve1(L->next);L->next->next = L;L->next = NULL;return q;
}
//main.c
#include "link_list.h"int main(int argc, 	const char *argv[])
{NodePtr L = list_create();int retem = list_empty(L);list_insert_head(L,520);list_insert_head(L,1314);list_insert_head(L,123);list_insert_head(L,456);list_insert_head(L,789);list_show(L);list_insert_pos(L,2,200);list_show(L);list_delete_head(L);list_show(L);list_delete_pos(L,3);list_show(L);int retval = list_search_retval(L,200);if(retval != -1){printf("该元素在第%d个位置\n",retval);}retval = list_search_retval(L,232);list_updata_pos(L,3,520);list_show(L);list_updata_data(L,456,997);list_show(L);list_reserve(L);list_show(L);list_sort(L);list_show(L);NodePtr retPtr = list_reserve1(L);list_show(retPtr);list_destroy(L);L = NULL;list_show(L);return 0;
}

输出结果如下:

http://www.hkea.cn/news/332543/

相关文章:

  • 山西网站推广公司网站关键词优化怎么弄
  • 微信分销是什么重庆优化seo
  • 武汉企业网站推广方案永久免费无代码开发平台网站
  • 网站开发岗位群怎样推广产品
  • 桐城市美丽乡村建设专题网站石家庄整站优化技术
  • 北京建网站的公司哪个比较好郑州seo价格
  • 进空间的网站网络营销常见的工具
  • wordpress发文章的id怎么不连续如何做好搜索引擎优化工作
  • 交互式网站如何做seo推广软件排名
  • 西部建设网站惠州seo排名优化
  • 做环球资源网站有没有效果2024百度下载
  • 织梦 安装网站网站搭建需要多少钱
  • 做网站购买备案域名性价比高seo的排名优化
  • 潍坊中脉网站建设公司淄博seo公司
  • 深圳做网站推广哪家好青岛关键词优化平台
  • 呼和浩特市网站建设公司uc搜索引擎入口
  • 网站怎么做关键词搜索电子商务主要学什么内容
  • python做的网站漏洞百度竞价推广开户联系方式
  • 做任务换流量的网站怎么自己制作网页
  • 福清建设局网站火蝠电商代运营公司
  • 爱玖货源站在线智能识图
  • 上海网络营销软件windows优化大师win10
  • 专做美妆的视频网站ui设计
  • 平度市建设局网站济宁百度推广价格
  • 茶类网站建设方案西安网站seo排名优化
  • 南和县住房和建设局网站石家庄整站优化技术
  • 做教育网站销售的好吗成都百度网站排名优化
  • 展览展会网页模板下载河南网站优化排名
  • 自己做网站上传视频疫情二十条优化措施
  • 网站排名上升 优帮云网络销售培训学校