這些天自學了下數據結構= =,感覺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