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

网站管理和维护陕西开龄建设网站

网站管理和维护,陕西开龄建设网站,找别人做的淘客网站 会不会有问题,html5单页模板一、作业要求 单链表操作,要求节点是结构体类型,实现以下功能: 1.尾插学生 2.任意位置插入学生 3.任意位置删除学生 4.逆置单链表 5.学生按学号排序 6.销毁单链表 二、实现过程 1.代码如下: (1)头…
一、作业要求

单链表操作,要求节点是结构体类型,实现以下功能:

1.尾插学生
2.任意位置插入学生
3.任意位置删除学生
4.逆置单链表
5.学生按学号排序
6.销毁单链表
二、实现过程
1.代码如下:

(1)头文件创建

#ifndef _LINK_L_
#define _LINK_L_
#include <myhead.h>
//学生信息结构体
typedef struct
{int id;char name[20];
}stu,*Stu;
//单链表结构体
typedef struct Link
{union {int len;stu xs;};struct Link *next;
}links,*Plink;
//创建头节点
Plink create();
//尾插法
int rear_insert(Plink,stu);
//输出函数
int output_link(Plink);
//学生信息输入
Stu input_stu(Stu);
//任意位置插入
int anypos_insert(Plink,int,Stu);
//任意位置删除
int anypos_delete(Plink,int);
//单链表逆置
int rev_stulink(Plink);
//按学号排序
int id_sort(Plink);
//单链表销毁
int link_destroy(Plink);
#endif

(2)主函数编写 

#include "link.h"
int main(int argc, const char *argv[])
{int n,pos;Stu s=NULL;Stu sp=NULL;Plink L=create();//学生信息管理系统结构while(1){printf("\t++++++学生管理系统++++++++++\n");printf("\t\t1、尾插法\n");printf("\t\t2、任意位置插入信息\n");printf("\t\t3、任意位置删除信息\n");printf("\t\t4、单链表逆置\n");printf("\t\t5、学生学号排序\n");printf("\t\t6、销毁链表退出系统\n");printf("\n");int cz=0;printf("请输入操作数:");scanf("%d",&cz);switch(cz){case 1://尾插法printf("请输入学生个数:");scanf("%d",&n);s=malloc(sizeof(stu)*n);for(int i=0;i<n;i++){printf("请输入学生信息:");scanf("%d %s",&s[i].id,s[i].name);}for(int i=0;i<n;i++){rear_insert(L,s[i]);}output_link(L);break;case 2://任意位置插入printf("请输入要插入位置:");scanf("%d",&pos);sp=input_stu(sp);anypos_insert(L,pos,sp);output_link(L);break;case 3://任意位置删除printf("请输入要删除位置:");scanf("%d",&pos);anypos_delete(L,pos);output_link(L);break;case 4://单链表逆置rev_stulink(L);output_link(L);break;case 5:id_sort(L);output_link(L);break;case 6://销毁单链表并退出程序link_destroy(L);return 0;}}return 0;
}

 (3)功能函数编写

#include "link.h"
Plink create()
{Plink L=malloc(sizeof(links));if(L==NULL){printf("创建头节点失败\n");return NULL;}L->next=NULL;L->len=0;printf("创建成功\n");return L;
}
//任意位置删除
int anypos_delete(Plink L,int pos)
{if(L==NULL||pos<1||pos>L->len){printf("删除失败\n");return -1;}Plink t=L;//t指针移至指定节点的前驱for(int i=1;i<pos;i++)t=t->next;//p指针指向要删除节点Plink p=t->next;//t指针链接要删除节点的后一节点t->next=t->next->next;//长度-1L->len--;//释放p节点free(p);p=NULL;return 0;
}
//单链表逆置
int rev_stulink(Plink L)
{if(L==NULL||L->len<1){printf("逆置失败\n");return -1;}//Q指针指向头节点下一节点Plink Q=L->next;//t指向Q的下一节点Plink t=Q->next;//后移直到next指向空while(Q->next!=NULL){//Q指针指向t节点下一节点//单拎t节点Q->next=t->next;//t节点放到头节点之后t->next=L->next;//头节点链接t节点L->next=t;//再次将t指针指向Q节点的下一节点t=Q->next;}return 0;
}
//按学号排序
int id_sort(Plink L)
{Plink j=L;//遍历次数for(int i=1;i<L->len;i++){//指针指向头节点后一节点//后移直到j指针的next为空for(j=L->next;j->next!=NULL;j=j->next){//判断学号大小if(j->xs.id>j->next->xs.id){//结构体内容交换stu temp=j->xs;j->xs=j->next->xs;j->next->xs=temp;}}}return 0;
}
//尾插法
int rear_insert(Plink L,stu s)
{if(L==NULL){printf("插入失败\n");return -1;}Plink t=L;for(int i=0;i<L->len;i++)t=t->next;Plink p=malloc(sizeof(links));p->xs.id=s.id;strcpy(p->xs.name,s.name);p->next=NULL;t->next=p;L->len++;return 0;
}
//输出函数
int output_link(Plink L)
{if(L==NULL){printf("该链表为空\n");return -1;}Plink t=L;for(int i=0;i<L->len;i++){t=t->next;printf("学号:%d\t姓名:%s\n",t->xs.id,t->xs.name);}printf("\n");return 0;
}
//学生信息输入
Stu input_stu(Stu s)
{s=malloc(sizeof(stu));printf("请输入学生信息:");scanf("%d %s",&s->id,s->name);return s;
}
//任意位置插入
int anypos_insert(Plink L,int pos,Stu s)
{if(L==NULL||pos<1||pos>L->len+1){printf("插入失败\n");return -1;}Plink t=L;for(int i=1;i<pos;i++)t=t->next;Plink p=malloc(sizeof(links));p->xs.id=s->id;strcpy(p->xs.name,s->name);p->next=t->next;t->next=p;L->len++;return 0;}
//销毁单链表
int link_destroy(Plink L)
{//链表为空销毁失败if(L==NULL){printf("销毁失败\n");return -1;}//t指针指向单链表Plink t=L;while(L!=NULL){//t指针后移t=t->next;//从头节点开始释放free(L);//指向tL=t;}printf("销毁成功\n");return 0;
}
2.运行结果如图所示:
(1)尾插法插入学生信息

 (2)任意位置插入学生信息

 (3)任意位置删除学生信息

 (4)单链表逆置

 (5)按学号给学生排序

(6)销毁单链表并退出系统

http://www.yayakq.cn/news/433912/

相关文章:

  • 哪个网站做新加坡劳务比较好的上海网站建设优化价格
  • 搜索引擎排名google深圳市seo上词点击软件
  • 网站做定制还是固定模板个人网站论文设计内容简介
  • 高端网站建设公司好不好免费制作logo的软件有哪些
  • 翻译建设企业网站中国flash网站模板中心
  • 那种漂亮的网站怎么做的wordpress默认模版
  • 兴安盟住房和城乡建设部网站南昌手机网站
  • 做网站需要哪些软件云商城app
  • 和网站合作有哪些活动可以做qq刷会员建设网站
  • 好的提升设计师网站网页界面设计特点
  • 建工作室网站动漫做的游戏 迅雷下载网站
  • 潍坊响应式网站建设青海省住房和城乡建设部网站
  • 网站建设中期报告站点推广促销
  • 加强网站 网站建设杭州做邮票的公司网站
  • asp网站域名公司大气聚财的名字
  • 网站域名到期怎么回事镇江建设网站公司
  • 如何做网站权重自己做的网站怎么在百度搜索到
  • 网站后台关键词怎么设置手机必备app排行榜
  • 网站建设课程的认识wordpress 主页不显示
  • 推荐做pc端网站一个网站可以做多少弹窗广告
  • 做网站需要拉多大的宽带wordpress代码语言
  • 杭州房产网官方网站wordpress首页显示分类目录下的一个类别
  • 市场营销策略范文站长之家 seo查询
  • 网站是如何盈利wordpress头像变圆
  • 做个手机网站多少钱index of wordpress
  • 百度做网站优化多少钱一年泉州企业网站制作定制
  • 室内设计网站论坛淘宝怎么推广
  • 江桥做网站定制化网站建设公司
  • 织梦做的网站前面有不安全办公室内网怎么搭建局域网
  • 太原网站建设tygytc教务网络管理系统