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

.net网站程序网站建设 报告

.net网站程序,网站建设 报告,杭州游戏软件开发公司,2 如何写一份详细的网站开发方案链表-基础 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.pierceye.com/news/295206/

相关文章:

  • 中国做的电脑系统下载网站好互动网站
  • 网站使用培训方案网站后台工程师
  • 做网站优化找谁简单网站页面
  • 青岛做公司网站佛山网站建设锐艺传播
  • 江苏商城网站制作公司网站备案时间
  • 网站开发用到什么技术公司做影视网站侵权
  • 自己做网站大概多少钱唐山丰南建设局网站
  • 建设法律法规文本查询网站什么是建设型的网站
  • 如何设计一个购物网站如何免费网络营销推广
  • 网站制作服务好的商家做网站送的企业邮箱能用吗
  • 免费行情软件app网站排行企业内部网站如何建设
  • 沧州网络运营中心在哪里新的seo网站优化排名 网站
  • 米拓建站免费模板wordpress那个主题收录好
  • 网站后台中小型网站建设的基本流程
  • 一键做网站的软件爱互融网站开发合同
  • 平顶山市哪里有做网站的高端的扬中网站建设
  • 网站定制电话如何自己开公众号
  • app开发网站建设及开发专业济南网站建设价格
  • 网站建设新闻分享免费制作网站app
  • 海口网站建设高端wordpress 论坛那
  • 谁能帮我做网站百度推广登录平台怎么收费
  • 有关于网站建设的论文如何开发一个微信公众号
  • 深圳网站建制作网上写文章用什么软件
  • 网站模版自适应网站建设全包方案
  • 广州网站建设鞍山家电网站首页制作
  • 西安注册公司网站网站建设找a金手指
  • 浙江省住房和城乡建设厅网站打不开设计书籍频道开放说明
  • 阿里巴巴 网站建设遵义网警
  • 宁夏建设厅网站官网如何做DJ网站
  • 龙岩做网站公司哪家好erp系统与网站对接长沙