|
西交《程序设计基础》FAQ(八)
第七章 结构体与共同体(二)
一、问:结构体类型与结构体变量一样吗?
答:结构体类型与结构体变量概念不同
结构体类型:不分配内存; 结构体变量:分配内存
结构体类型:不能赋值、存取、运算; 结构体变量:可以
结构体可嵌套
结构体成员名与程序中变量名可相同,不会混淆
二、问:结构体指针变量是什么?
与基本类型指针变量相似,结构体指针变量主要作用是存储其结构体变量的地址或结构体数组的地址,通过间接方式操作对应的变量和数组。在C语言中规定,结构体指针变量可以参与的运算符如下: ,--,+ ,* ,->,.,|,&,!
三、问: 要在链表中插入一个数,怎么操作?
在链表中插入节点的基本步骤如下:
第一步,获得第一个节点的地址。
第二步,找到插入节点的位置。
第三步,创建新的节点InsertNode。
第四步,将当前节点的下一节点信息存储到新创建节点InsertNode的成员变量。
第五步,将InsertNode的地址存储到当前节点的成员变量中。
第六步,结束。
struct Node
{
……
struct Node * Next; /*下一对象的位置*/
};
int InsertElement (struct Node *List,int I, struct Node *Node)
{
/* List 为链表第一个节点地址,I 为第n个元素,如果存在,返回I,否则返回0*/
struct Node *pOne=NULL;
struct Node *pNewOne=NULL;
int j=0;/*计数器*/
pOne= List;/*指向数组的第一个节点*/
/*顺序查找,直到到达链表的尾部或j=I*/
while((pOne!=NULL)&&(j<I-1))
{
pOne=pOne->Next; /*查找下一节点*/
j++;
}
if((pOne->Next==NULL)||(j>I-1)) /*第I个元素不存在*/
return 0;
pNewOne= ( struct Node *)malloc(sizeof(struct Node));
{/*拷贝参数Node信息到新增加的节点pNewOne */
…...
pNewOne ->Next= Node ->Next;
}
pNewOne ->Next= pOne ->Next; /*将下一节点的地址拷贝到插入节点的成员变量中*/
pOne ->Next= pNewOne; /*将插入节点的地址拷贝到当前节点的成员变量中*/
return j;
}
本内容由易百网整理发布
网址 www.openhelp100.com
联系方式QQ 515224986
|
|