码迷,mamicode.com
首页 > 编程语言 > 详细

C++对象链表的创建与销毁

时间:2016-05-08 06:45:53      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

#include <IOSTREAM>
using namespace std;
/*对象链表(new/delete)*/
#define LEN sizeof(stu)
//定义单向链表结点的数据类型
class stu
{
public:
	char name[20];
	int age;
	int sex;
	stu * Next;
};
void CreateList(int,  stu **);
void PrintList( stu *);
void Delete(stu *);
//主函数中只需定义一个头结点指针即可
int main(void)
{
	int n;
	puts("请输入学生的个数N:");
	cin>>n;
	stu * head;
	head = NULL;
	CreateList(n, &head);//地址传递,head是一个地址变量,要对head本身的值进行修改必须将head的地址进行传递;若传递的是head变量内存储的值<NULL>
							//,不能达到修改head本身值的目的.
	PrintList(head);//指针地址值传递只是对其存储空间的值进行了一份拷贝,无法改变其本身的值。
	Delete(head);//销毁堆中链表,new创建的链表
	return 0;
	
}
//创建链表并实现数据输入
void CreateList(int n, stu ** p)
{
	int i = 1;
	stu * st1;
	stu * st2;
	st1 = new stu;
	* p = st1;
	while (i<=n)//循环用于连续产生新的堆中对象,并将其链接起来。
	{
		st2 = st1;
		printf("请输入第%d个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):\n", i);
		cin>>st2->name>>st2->age>>st2->sex;
		st1 = new stu;
		st2->Next = st1;
		i++;
	}
	st2->Next = NULL;
	st1 = NULL;//将不用的指针置空
	st2 = NULL;
}
//输出链表内容
void PrintList(stu * head)
{
	stu * p1;
	stu * p2;
	char * sex;
	p1 = head;
	p2 = p1;
	cout<<"\n您输入的学生信息如下:\n";
	while (p2 != NULL)
	{		
		if(p2->sex == 0)
			sex = "女";
		else
			sex = "男";
		cout<<p2->name<<'\t'<<p2->age<<'\t'<<sex;
		p1 = p2;
		p2 = p1->Next;
		puts("");//puts()输出字符串时会将字符串的结束符以回车输出,所以 puts(""); 起到了输出换行符的目的
	}
	p1 = p2 = NULL;//好习惯,将不用的指针置空。
	sex = NULL;
}
//函数结束时释放申请的所有堆中空间
void Delete(stu * p)
{
	stu * p1;
	stu * p2;
	p1 = p;
	p2 = p1;
	while (p2->Next != NULL)
	{
		p1 = p2->Next;
		delete p2;
		p2 = p1;
	}
	p2 = p1 = NULL;
}
/*
请输入学生的个数N:
5
请输入第1个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):
陈奕迅 23 1
请输入第2个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):
jion 22 1
请输入第3个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):
yonges 15 0
请输入第4个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):
winsoe 16 0
请输入第5个学生的信息,以次是姓名、年龄和性别(性别男用1,女用0表示):
susan 14 0

您输入的学生信息如下:
陈奕迅  23      男
jion    22      男
yonges  15      女
winsoe  16      女
susan   14      女
Press any key to continue
*/

C++对象链表的创建与销毁

标签:

原文地址:http://blog.csdn.net/u010738823/article/details/51341022

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!