小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

基于visual Studio2013解决C语言竞赛题之0810链表去重




题目


解决代码及点评

/************************************************************************/
/* 
10.	建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,
如果链表中的结点所包含的年龄等于此年龄,将此结点删除,输出最后的链表。

  */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

typedef struct	student 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;
	}
	else
		p->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;

	}
}
void	DeleteNode10(STU* pre,STU *cur)
{
	pre->next=cur->next;   // 删除cur节点,pre是cur的前置节点
	free(cur);
}
void	printfNodes10(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)拷贝代码与运行


程序运行结果






posted on 2013-12-06 15:46  牛栏山1  阅读(131)  评论(0编辑  收藏  举报

导航