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

数据结构作业day4

1、头插法创建双向链表,节点是学生信息(学号,分数,姓名)

2、调用函数遍历链表所有信息

3、调用函数,求出分数是完数的学生,并输出该学生所有信息

4、调用函数,按照姓名查找某个学生是否存在,存在输出该学生是第几个节点。

dlink.h

#ifndef _DLINK_H_
#define _DLINK_H_
#include <myhead.h>
typedef struct students
{int id;float score;char name[20];
}stu;typedef struct node
{union{stu data;int len;};struct node *pro;struct node *next;
}Dlink,*Pdlink;Pdlink apply();
Pdlink create();void front_insert(Pdlink);
void input_dlink(Pdlink);void output_dlink(Pdlink);void prefect_num(Pdlink);void serch_name(Pdlink);
#endif

dlink.c

#include "dlink.h"Pdlink apply()
{Pdlink p = malloc(sizeof(Dlink));if(p == NULL){printf("申请失败!\n");return NULL;}return p;
}Pdlink create()
{Pdlink p = apply();if(p == NULL){printf("创建失败\n");}p->len =0;p->pro = NULL;p->next = NULL;return p;
}void front_insert(Pdlink L)
{Pdlink p = apply();stu e;scanf("%d%f%s",&e.id,&e.score,e.name);if(L->next == NULL){p->data = e;p->next =NULL;p->pro = L;L->next = p;}else{p->data = e;p->next = L->next;p->pro = L;L->next->pro = p;L->next = p;L->len++;}
}void input_dlink(Pdlink L)
{int i,n;printf("请输入学生数量:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入第%d位同学的信息:",i+1);front_insert(L);}}void output_dlink(Pdlink L)
{int i;Pdlink t = L->next;while(t!=NULL){printf("\t%d\t%.2f\t%s",t->data.id,t->data.score,t->data.name);t = t->next;printf("\n");}printf("\n");
}void prefect_num(Pdlink L)
{Pdlink t = L;int i,j,sum;for(i=0;i<L->len;i++){sum = 0;t = t->next;for(j=1;j<t->data.score;j++){if((int)t->data.score % j == 0){sum += j;}}if(sum==t->data.score){printf("学号:%d,分数:%.2f,姓名:%s",t->data.id,t->data.score,t->data.name);}}}void serch_name(Pdlink L)
{char s[20];int sub = -1,i;Pdlink t = L;printf("请输入需要查找的名字:");scanf("%s",s);for(i=0;i<L->len;i++){t = t->next;if(strcmp(t->data.name,s)==0){sub = i;}}if(sub == -1){printf("查找失败\n");}else{printf("这名学生在第%d个节点",sub+1);}
}

main.c

#include "dlink.h"
int main(int argc, const char *argv[])
{Pdlink L = create();//头插法创建链表input_dlink(L);output_dlink(L);//完美数查找prefect_num(L);//按名字查找,输出节点信息serch_name(L);return 0;
}

xmind


http://www.mrgr.cn/news/62987.html

相关文章:

  • 【办公类-04-04】华为助手导出照片视频分类(根据图片、视频的文件名日期导入“年-月-日”文件夹中,并转移到“年-月”文件中整理、转移到“年”文件夹中整理)
  • GPT论文整理提示词
  • GitLab在Linux上的详细部署教程并实现远程代码管理与协作
  • C#之WebView2实现cookie登录,免登操作。
  • 【Clickhouse 探秘】你真正知道 Clickhouse 吗?
  • Jmeter基础篇(19)JSR223预处理器
  • pyecharts地图类型
  • 暴力破解漏洞
  • node.js_npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1
  • [java][高级]FilterListenerAjax
  • 双瑞股份上会,业绩增速放缓,与部分供应商交易合理性不足
  • 使用 MMDetection 实现 Pascal VOC 数据集的目标检测项目练习(四) annaconda和pytorch
  • Unity DOTS
  • 防爆电机技术要点、选型,一文搞定!
  • 必应Bing国内搜索广告代理商,必应广告如何开户投放?
  • STM32--STM32 微控制器详解
  • 基于Java的茶产品销售平台系统【附源码】
  • 假设检验简介
  • 组织如何防御日益增加的 API 攻击面
  • SpringBoot应用部署到Docker中MySQL8时间戳相差8小时问题及处理方式
  • 网络通信与并发编程(七)GIL、协程
  • 《揭秘 C++:确保模板函数重载决议正确的秘籍》
  • Redis ——发布订阅
  • Android 中View.post的用法
  • C++缺陷识别于调试
  • STM32的USB接口介绍