C语言课程设计(报告) 2011
scanf(\ pr->next = NULL; return head; }
/*检索学生的有关信息*/
void DispLink(struct Link *head) {
struct Link *p = head; long n; int flag=1;
printf(\输入要检索的学生学号:\ scanf(\
while(flag == 1 && p != NULL) {
if(n == p->num) {
flag = 0; break; }
p = p->next; }
if(flag == 0) {
printf(\ } else {
printf(\ } }
/*删除成绩低于50分的学生*/
struct Link *DelNode(struct Link *head) {
struct Link *p = head, *pr = head, *prr = head;
if(head == NULL) {
printf(\ return (head); }
- 5 -
C语言课程设计(报告) 2011
pr = p;
while(p != NULL) {
if(p->score<50) {
if(p == head) {
head = p->next; } else {
pr->next = p->next; }
p = p->next; } else {
pr = p;
p = p->next; } }
return head; }
/*显示删除后的链表*/
void Print(struct Link *head) {
struct Link *p = head;
while(p != NULL) {
printf(\ p = p->next; } }
c.辅助函数源代码
/*释放链表中所有节点占用的内存*/
void DeleteMemory(struct Link *head) {
struct Link *p = head,*pr = NULL; while(p != NULL) {
pr = p;
- 6 -
C语言课程设计(报告) 2011
p = p->next; free(pr); } }
4.5系统实现(截图)
图1 程序运行情况
5 结术语
通过这次链表操作在理解链表原理的基础上,利用计算机进行程序的上机调试,并附以图示,不仅加深我们的链表的理解,更能提高我们对C语言学习兴趣和效率,使我们在整个学习过程中始终保持良好的学习情绪和活跃的思维。
参 考 文 献
[1] 苏小红, 陈惠鹏, 孙志岗. C语言大学实用教程(第2版).电子工业出版社. 2007 [2] 谭浩强. C程序设计.清华大学出版社. 2005.
- 7 -