您的位置:首页 > 理论基础 > 数据结构算法

<复习>数据结构中的结构体

2016-02-11 11:57 471 查看
这些天自学了下数据结构= =,感觉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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: