链表节点的增加和删除
CHEN7_98:
你好,请问我直接void函数不带任何参数的 定义一个节点p,给p动态空间,然后按照您的方法检索出一个结点等于p,然后直接输入数据,也可以达到延长链表的功能,请问这样没错吗
[code=csharp]
void Add()
{
system("cls");
printf("请输入联系人信息:\n");
stu *p = NULL;
stu *pr = head;
p = (stu*)malloc(sizeof(stu));//为新节点申请内存
if (p==NULL)
{
printf("No enough memory to alloc");//如果申请内存失败,则输出错误信息
exit(0);
}
if (head == NULL)//如果原链表为空表,则将新建节点设置为首节点
{
head = p;
}
else//若原链表为非空,则新建节点到表尾
{
while (pr->next !=NULL)//若未到表位,则继续移动指针pr
{
pr = pr->next;
}
pr->next = p;//将新建节点设置为表尾
}
gets(p->name);
gets(p->studentid);
gets(p->phonenumber);
gets(p->address);
gets(p->birthland);
gets(p->email);
p->next=NULL;
options();//返回菜单
}
[/code]
|