单链表代码2
2015-12-23 11:34
232 查看
//按照输入学生姓名删除节点
void delNode(char name[41])
{
NODE *pos = NULL;
NODE *walk = NULL;
NODE *prevNode = NULL;
NODE *freeNode = NULL;
pos = findNode(name);
if(pos == NULL)
{
printf("没有找到对应的学生信息!\n");
return;
}
else
{
//遍历链表,查找出删除节点的位置,并保存该节点前一个节点的指针位置(用prevNode保存)
for (walk = head; walk != NULL; walk = walk->link)
{
if(strcmp(walk->name, name) == 0)
{
break;
}
prevNode = walk;
}
//当preNode为空,表示删除的节点是头结点
if(prevNode == NULL)
{
freeNode = head;
head = head->link;
free(freeNode);
freeNode = NULL;
}
else
{
freeNode = prevNode->link;
prevNode->link = freeNode->link;
free(freeNode);
freeNode = NULL;
}
printf("删除成功!\n");
studentNumber--;
}
}
//打印现有的学生信息,可以删除
void printinfo()
{
NODE *walk;
printf("学生数量:%d\n", studentNumber);
for(walk = head; walk != NULL; walk = walk->link)
{
printf("%s %s %d\n", walk->name, walk->no, walk->xb);
}
printf("\n");
}
void delNode(char name[41])
{
NODE *pos = NULL;
NODE *walk = NULL;
NODE *prevNode = NULL;
NODE *freeNode = NULL;
pos = findNode(name);
if(pos == NULL)
{
printf("没有找到对应的学生信息!\n");
return;
}
else
{
//遍历链表,查找出删除节点的位置,并保存该节点前一个节点的指针位置(用prevNode保存)
for (walk = head; walk != NULL; walk = walk->link)
{
if(strcmp(walk->name, name) == 0)
{
break;
}
prevNode = walk;
}
//当preNode为空,表示删除的节点是头结点
if(prevNode == NULL)
{
freeNode = head;
head = head->link;
free(freeNode);
freeNode = NULL;
}
else
{
freeNode = prevNode->link;
prevNode->link = freeNode->link;
free(freeNode);
freeNode = NULL;
}
printf("删除成功!\n");
studentNumber--;
}
}
//打印现有的学生信息,可以删除
void printinfo()
{
NODE *walk;
printf("学生数量:%d\n", studentNumber);
for(walk = head; walk != NULL; walk = walk->link)
{
printf("%s %s %d\n", walk->name, walk->no, walk->xb);
}
printf("\n");
}
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法