基于visual Studio2013解决C语言竞赛题之0810链表去重
来源:互联网 发布:手机淘宝分类在哪里 编辑:程序博客网 时间:2024/04/29 20:32
题目
解决代码及点评
/************************************************************************//* 10.建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,将此结点删除,输出最后的链表。 *//************************************************************************/#include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>typedef structstudent STU;struct student // 保存学生信息的节点结构体{int num;char name[10];int age;int sex;struct student * next;};STU * Init10() // 初始化链表{STU * p=(STU *)malloc(sizeof(STU)); // 初始化链表时,创建了一个头节点,该节点信息无意义if (p==NULL) // 如果内存申请失败,则{return NULL;}elsep->next=NULL;return p; // 返回创建的头结点}void Insert10(STU * head,int num,int aeg,int sex,char * name) // 将新学生信息插入链表{STU * last=head;if (last==NULL){return;}while(last->next!=NULL) // 找到最后一个节点last=last->next;STU *p=(STU *)malloc(sizeof(STU)); // 申请新节点空间if (p==NULL){return;}else{p->num=num; // 初始化新节点strcpy_s(p->name,name);p->age=aeg;p->sex=sex;last->next=p; // 把新节点保存在链表最后p->next=NULL;}}voidDeleteNode10(STU* pre,STU *cur){pre->next=cur->next; // 删除cur节点,pre是cur的前置节点free(cur);}voidprintfNodes10(STU *head) // 该函数遍历所有node,进行打印输出{STU *p=head->next;while(p!=NULL){printf("%5d",p->age);p=p->next;}printf("\n");}void main(){int num;scanf_s("%d",&num); // 输入STU * A=Init10(); // 初始化链表,并插入一堆数据Insert10(A,1,12,1,"abc");Insert10(A,2,13,0,"abc");Insert10(A,3,14,1,"abc");Insert10(A,3,14,0,"abc"); Insert10(A,4,15,1,"abc");printfNodes10(A);STU * index=A->next;STU * flower=A;while(index!=NULL) // 遍历所有节点{if (index->age==num) // 如果节点的年纪是指定需要删除的年纪{DeleteNode10(flower,index); // 删除该节点index=flower->next; // 继续遍历}else{index=index->next; // 只是继续遍历flower=flower->next;}}printfNodes10(A); // 输出新的链表system("pause");}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
- 基于visual Studio2013解决C语言竞赛题之0810链表去重
- 基于visual Studio2013解决C语言竞赛题之前言
- 基于visual Studio2013解决C语言竞赛题之0401阶乘
- 基于visual Studio2013解决C语言竞赛题之0408素数
- 基于visual Studio2013解决C语言竞赛题之0516人来人往
- 基于visual Studio2013解决C语言竞赛题之0517矩阵
- 基于visual Studio2013解决C语言竞赛题之0519最大值
- 基于visual Studio2013解决C语言竞赛题之0605strcat
- 基于visual Studio2013解决C语言竞赛题之0607strcpy
- 基于visual Studio2013解决C语言竞赛题之0612递归
- 基于visual Studio2013解决C语言竞赛题之0803报数
- 基于visual Studio2013解决C语言竞赛题之1004平均值
- 基于visual Studio2013解决C语言竞赛题之1006填空
- 基于visual Studio2013解决C语言竞赛题之1010计算
- 基于visual Studio2013解决C语言竞赛题之1011对称
- 基于visual Studio2013解决C语言竞赛题之1017次数
- 基于visual Studio2013解决C语言竞赛题之1020订票
- 基于visual Studio2013解决C语言竞赛题之1021九九乘法表
- MCSA 2012 70-410题库(更新4月1日)
- iOS运行回路(RunLoop)总结
- 如何判断元素是否为HTMLElement元素
- noi2004 郁闷的收纳员 treap
- 简单实现了下SSDT SHADOW HOOK
- 基于visual Studio2013解决C语言竞赛题之0810链表去重
- X64下VC工程内联汇编
- hibernate中对象的3种状态----瞬时态、持久态、脱管态
- iPhone开发之自定义UIActionSheet
- Javascript中克隆一个数组的实现代码
- 深入浅出SQL Server 2008 分区函数和分区表
- hadoop常用链接备份
- PHP数组学习
- Install Timesys OS on simics with Intel Atom e6xx