數據結構中的結構體

這些天自學了下數據結構= =,感覺C掌握的就是渣啊,所以複習一下。

1.結構體

1.1結構體的定義:結構體(struct)是由一系列具有相同類型或不同類型的數據構成的數據集合,叫做結構。

用自己的話來說就是根據需求,包括了一系列的數據類型產生新的一種數據類型。

常見的列子就是:學生信息管理系統。學生是一種自己定義的包括了學號,姓名,身高,體重等等信息的數據類型。

1.2結構體的用法:

1.2.1結構體聲明:

最基本方法:

<span style="font-size:18px;">/*
**struct 是結構體關鍵字
** student 是結構體名稱(標籤)
**string和name 是結構體成員
** kaka 是聲明的一個結構體變量 
*/ 
struct student{
	string name;
	int age;
} kaka; </span>

當然還可以以下的方法:

<span style="font-size:18px;">**struct 是結構體關鍵字
** student 是結構體名稱(標籤)
**string和name 是結構體成員
** kaka 是聲明的一個結構體變量 
*/ 
struct student{
	string name;
	int age;
} kaka; 

/*
**沒有定義結構體名稱 
**kaka是聲明的結構體變量 
*/
struct{
	string name;
	int age;
} kaka; 

/*
**定義時沒有聲明結構體變量 
**需要使用時 student kaka,messi; 
*/
struct student{
	string name;
	int age;
} ;

student kaka,messi; 

/*
**用法同上 
*/ 
typedef struct{
	string name;
	int age;
} student;
student kaka, messi; </span>
另外,結構體的成員可以包含其他結構體,也可以包含指向自己結構體類型的指針

<span style="font-size:18px;">/* 
**LNode結構體包括了Book結構體和指向LNode類型的指針
**  *LinkList爲指向當前結構體的指針 
*/
struct Book {
	string id;  
	string name;
	double price;
};
typedef struct LNode {
	Book data;
	struct LNode *next;
} LNode, *LinkList;</span>
1.2.2對結構體的操作

對以上的單鏈表進行舉例

比如建立一個新鏈表,操作方法是:

<span style="font-size:18px;">int InitList_L(LinkList &L) {
	L = new LNode;
	L->next = NULL;
	return OK;
}</span>
函數名中聲明瞭一個類型爲LNoded的指針L,使用L= new LNode分配內存空間

L指針上的結構體指向的指針爲空

<span style="font-size:18px;">cout << left << setw(15) << p->data.id << "\t" << left << setw(
					50) << p->data.name << "\t" << left << setw(5)
					<< p->data.price << endl;</span>
這句話中的p爲指針,所以訪問結構體時用的是->,而data爲結構體,訪問時用data.id

附幾個跟着郝斌寫的幾個例子見http://blog.csdn.net/u012348655/article/details/47073021

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章