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

竞价网站推广宁波正规seo快速排名公司

竞价网站推广,宁波正规seo快速排名公司,承德建设局网站,网站建设管理人员链表-基础 1. 数组 1.1 静态数组 例子:int nums[5] {0};struct person ps[5]; 缺点:1,无法修改地址2,无法动态定义长度3,占用内存过大或过小4,增删速度慢 优点数组的内存是连续开辟的,所以读取速度快1.2 动态数组 例子:int *nums (int *) calloc(5,sizeof(int));struct p…链表-基础 1. 数组 1.1 静态数组 例子:int nums[5] {0};struct person ps[5]; 缺点:1,无法修改地址2,无法动态定义长度3,占用内存过大或过小4,增删速度慢 优点数组的内存是连续开辟的,所以读取速度快1.2 动态数组 例子:int *nums (int *) calloc(5,sizeof(int));struct person *ps (struct person *)calloc(5,sizeof(struct person)); 缺点:增删速度慢编写代码较为复杂 优点:读取效率高2. 常用数据结构 1、数组结构:内存连续开辟 2、链表结构:离散开辟 3、树 4、二叉树(均衡二叉树,非均衡二叉树) 5、图 3. 链表结构 分类 单链表 一个节点只记录下一个节点的地址 双链表 一个节点即记录下一个节点的地址也记录上一个节点的地址 4. 设计节点 需求将多个学员信息设计为链表 单链表节点设计 typedef struct student {//数据域char name[50];char sex[5];int num;double score;//指针域struct student *next; }Stu;双链表节点设计 typedef truct student {//数据域char name[50];char sex[5];int num;double score;//指针域struct student *next;struct student *head; }Stu;总结 typedef struct 结构体名称 {//数据域//指针域 }别名;5. 静态单链表 #include stdio.h typedef struct student {//数据域char name[50];char sex[5];int num;double score;//指针域struct student *next; }Stu; int main(int argc, char const *argv[]) {Stu s01 {张三, 男, 1, 99, NULL};Stu s02 {李四, 男, 2, 96, NULL};Stu s03 {王五, 女, 3, 97, NULL};Stu s04 {钱七, 男, 4, 93, NULL};Stu s05 {赵八, 女, 5, 97, NULL};Stu *head s01; //将s01作为首节点s01.next s02; //将s02设置为s01的下一个节点 s02.next s03;s03.next s04;s04.next s05;//链表的遍历//pd:当前链表的节点Stu *pd head;while(pd ! NULL){printf(%s %s %d %.2lf\n, pd-name, pd-sex, pd-num, pd-score);//下一个节点赋值给当前节点为下一轮循环pd pd-next;}return 0; }6. 动态单链表 动态开辟内存存储结构体学生信息 #include stdio.h #include stdlib.h #include string.h typedef struct student {//数据域char name[50];char sex[5];int age;//指针域struct student *next; }Stu; int main(int argc, char const *argv[]) {Stu *s01 calloc(1,sizeof(Stu));strcpy(s01-name, 陈晴朗);strcpy(s01-sex, 男);s01-age 18;Stu *s02 calloc(1,sizeof(Stu));strcpy(s02-name, 李槐);strcpy(s02-sex, 男);s02-age 8;Stu *s03 calloc(1,sizeof(Stu));strcpy(s03-name, 李宝瓶);strcpy(s03-sex, 女);s03-age 14;Stu *s04 calloc(1,sizeof(Stu));strcpy(s04-name, 裴钱);strcpy(s04-sex, 女);s04-age 12;Stu *s05 calloc(1,sizeof(Stu));strcpy(s05-name, 崔东山);strcpy(s05-sex, 男);s05-age 16;Stu *head s01; //将s01作为首节点s01-next s02; //将s02设置为s01的下一个节点 s02-next s03;s03-next s04;s04-next s05;//链表的遍历//pd:当前链表的节点Stu *pd head;while(pd ! NULL){printf(%s\t%s\t%d\n, pd-name, pd-sex, pd-age);//下一个节点赋值给当前节点为下一轮循环pd pd-next;}return 0; } // 陈晴朗 男 18 // 李槐 男 8 // 李宝瓶 女 14 // 裴钱 女 12 // 崔东山 男 16练习学员管理系统 需求 选项有:1,查询所有学员信息2,添加学员信息3,插入学员信息4,删除学员信息5,修改学员信息(作业)6,查找指定位置的学员(作业)7,退出程序(释放内存)代码 #include stdio.h #include stdlib.h #include string.h typedef struct student {//数据域char name[30];char sex[10];int num;//指针域struct student *next; }STU; //记录链表首节点 STU *head NULL;//查询函数(打印链表) void print_link(STU *head) {//定义一个节点作为当前节点STU *pd head;while (pd ! NULL){printf(姓名:%s\t性别:%s\t学号:%d\n,pd-name,pd-sex,pd-num);//获取下一个节点赋值给当前节点pd pd-next;}printf(\n); }//计算链表长度 int get_len(STU *head) {int i 0;STU *pd head;while(pd ! NULL){i;pd pd-next;}return i; }//添加学员信息逻辑 /*添加新节点到连接尾部参数;head:链表的头节点stu:要添加的新节点返回值链表的头节点 */ STU *add(STU *head, STU *stu) {//如果传进来的学员信息为空直接返回传进来的头结点if (stu NULL){return head;}//判断链表首节点是否为空,为空表示此时链表还没有节点直接将数据赋值给首结点if (head NULL){head stu;printf(添加成功\n\n);return head;}//查询最后一个节点找到NULL的前一个节点//假设当前节点就是最后一个节点(即一个也没有)此时首节点就是最后一个节点STU *lastNode head;while(lastNode ! NULL){//进循环表示这不是最后一个节点就判断他的下一个节点是否为空为空直接跳出循环if (lastNode-next NULL){break;}else{//此时表示他的下一个节点不是NULL将它的下一个节点赋值给它lastNode lastNode-next;}}//没有进循环表示lastNode就是当前链表的最后一个节点//此时就要将本次创建的节点添加到 原链表最后一个节点的后面lastNode-next stu;printf(添加成功\n\n);return head; }//尾部添加学员信息 STU *add_student(STU *head) {//开辟一块堆内存空间赋值 结构体指针变量用来存储学员信息(即stu指向这片堆内存)STU *stu calloc(1,sizeof(STU));printf(请输入学员姓名\n);scanf(%s, stu-name);printf(请输入学员性别\n);scanf(%s, stu-sex);printf(请输入学员学号\n);scanf(%d, stu-num);head add(head, stu);return head;}//插入学员 STU *inster_student(STU *head) {STU *stu calloc(1,sizeof(STU));printf(请输入学员姓名\n);scanf(%s, stu-name);printf(请输入学员性别\n);scanf(%s, stu-sex);printf(请输入学员学号\n);scanf(%d, stu-num);printf(请输入要插入学员的位置(从0开始)\n);int index 0;scanf(%d, index);//排除错误int len get_len(head);if (index len){//插入位置超过链表长度插入链表末位head add(head, stu);return head;}if (index 0){printf(输入位置有误\n);return head;}//为0表示插入第一个位置if (index 0){//将首节点位置变为下一个节点stu-next head;//将新建的节点赋值给首节点head stu;printf(添加成功\n);return head;}//寻找插入节点的前一个节点STU *pd head;for (int i 0; i index - 1; i){pd pd-next;}stu-next pd-next; //将前一个节点的原后一个节点赋值给新节点的下一个节点pd-next stu;printf(添加成功\n\n);return head; }//删除学员 STU *del_student(STU *head) {printf(请输入要删除学员的位置(从0开始)\n);int index 0;scanf(%d, index);//排除错误int len get_len(head);if (index len || index 0){printf(输入位置有误\n);return head;}//为0表示删除第一个位置if (index 0){//将首节点的下一个节点变为首节点head head-next;printf(删除成功\n);return head;}STU *pd1 head, *pd2;int i 0;while (i index){pd2 pd1;pd1 pd1-next;i;}if (pd1 ! NULL){pd2-next pd1-next;}printf(删除成功\n);return head; }//修改学员 STU *update_student(STU *head) {STU *stu calloc(1,sizeof(STU));printf(请输入要修改学员姓名\n);scanf(%s, stu-name);printf(请输入要修改学员性别\n);scanf(%s, stu-sex);printf(请输入要修改学员学号\n);scanf(%d, stu-num);printf(请输入要修改学员的位置(从0开始)\n);int index 0;scanf(%d, index);//排除错误int len get_len(head);if (index len || index 0){printf(输入位置有误\n);return head;}//为0表示修改第一个位置if (index 0){//将新节点的next指向原首节点的下一个节点stu-next head-next;printf(修改成功\n);return head;}//不为0int i 0;//定义两个指针变量记录当前节点和上一个节点STU *pd1 head, *pd2;while (i index){pd2 pd1;pd1 pd1-next;i;}pd2-next stu;stu-next pd1-next;printf(修改成功\n);return head; }//查询指定学员位置 STU *find_student(STU *head) {printf(请输入要查找学员的位置(从0开始)\n);int index 0;scanf(%d, index);//排除错误int len get_len(head);if (index len || index 0){printf(输入位置有误\n);return head;}STU *pd head, *pd1;//为0表示查找的是第一个学员if (index 0){//直接打印首节点printf(姓名:%s\t性别:%s\t学号:%d\n\n,pd-name,pd-sex,pd-num);return head;}//不为0寻找当前节点int i 0;while (i index){pd1 pd;pd pd-next;i;}printf(姓名:%s\t性别:%s\t学号:%d\n\n,pd-name,pd-sex,pd-num);return head; }//菜单函数 void my_menu(int tag) {switch (tag){case 1:print_link(head);break;case 2:head add_student(head);break;case 3:head inster_student(head);break;case 4:head del_student(head);break;case 5:head update_student(head);break;case 6:head find_student(head);break;default:printf(输入有误, 请重新输入\n\n);break;} }//释放内存 void free_link(STU *head) {STU *pd head;while (pd ! NULL){//记录其下一个节点STU *next pd-next;//释放当前节点free(pd);//更换当前节点pd next;}}int main(int argc, char const *argv[]) {while (1){printf(1,查询所有学员信息\n2,添加学员信息\n3,插入学员信息\n4,删除学员信息\n5,修改学员信息\n6,查找指定位置的学员\n7,退出程序\n\n);printf(请输入本次操作的选项输入对应数字\n);int tag 0;scanf(%d, tag);if (tag ! 7){my_menu(tag);}else{free_link(head);printf(欢迎下次光临!\n);break;}}return 0; }
http://www.w-s-a.com/news/135319/

相关文章:

  • 网站模板及源码谁家网站用户体验做的好
  • 做网站的技术要求搜索栏在wordpress菜单上位置
  • 如何给网站弄ftpwordpress怎么添加关键词描述
  • 成都工程建设信息网站金科网站建设
  • 传媒公司 网站开发厦门网站建设门户
  • 宿城区建设局网站做网站的绿色背景图
  • 网站空间托管合同 .doc网站开发团队 组建
  • 网站建设书本信息it运维服务
  • 四核网站建设设计网站流程
  • ui设计网站设计与网页制作视频教程wordpress插件漏洞利用
  • 网站建设公司排名前十做网站的最终目的
  • 选择网站开发公司的标准中国网站建设市场规模
  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名
  • 河南省住房建设厅官方网站注册公司邮箱需要什么
  • 美橙网站注册华为手机网站建设策划方案论文
  • 河南省和建设厅网站首页在线图片翻译
  • 关于备案空壳网站清理通知去别人网站挂黑链
  • 做网站待遇世界购物平台排行榜
  • 售后服务网站什么网站免费做简历模板
  • 网站模板怎么修改成都网站优化seo
  • 给装修公司做推广的网站wordpress站点的根目录
  • 怎么创建企业网站wordpress怎么做404页面跳转
  • 福建省住房和建设厅网站网站做著作权
  • 编程代码网站网站搭建的注意事项