程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++對象鏈表的創建與銷毀

C++對象鏈表的創建與銷毀

編輯:關於C++
#include 
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變量內存儲的值
							//,不能達到修改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<name<<'\t'<age<<'\t'<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
*/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved