用指针处理链表
2015-04-10 12:40
281 查看
//用指针处理链表 //建立一个简单的链表,它由3个学生数据的结点组成,要求输出各结点中的数据 /*#include <stdio.h> struct Student { int num; float score; struct Student *next; }; int main() { struct Student a,b,c,*head,*p; a.num = 10101; a.score = 89.5; b.num = 10103; b.score = 90; c.num = 10107; c.score = 85; head = &a; //将结点a的起始地址赋给头指针head a.next = &b; //将结点b的起始地址赋给a结点的next成员 b.next = &c; //将结点c的起始地址赋给b结点的next成员 c.next = NULL; //将结点c的next成员不存放其他结点地址 p = head; //使p也指向a结点 do { printf("%1d%5.1f\n",p->num,p->score); p = p->next; //使p指向下一结点 }while(p != NULL); //输出完c结点后p的值为NULL,循环终止 return 0; }*/ //写一函数建立一个有3名学生数据的单向动态链表 #include <stdio.h> #include <stdlib.h> #define LEN sizeof(struct Student) struct Student { long num; float score; struct Student *next; }; int n; struct Student * creat(void) { struct Student * head; struct Student *p1,*p2; n = 0; p1 = p2 = (struct Student *)malloc(LEN); //开辟一个新单元 scanf("%ld,%f",&p1->num,&p1->score); //输入第1个学生的学号和成绩 head = NULL; while(p1->num != 0) { n = n+1; if(n == 1) head = p1; else p2->next = p1; p2 = p1; p1 = (struct Student *)malloc(LEN); scanf("%ld,%f",&p1->num,&p1->score); } p1->next = NULL; return (head); } int main() { struct Student *pt; pt = creat(); printf("\nnum:%ld\nscore:%5.1f\n",pt->num,pt->score); return 0; }
相关文章推荐
- 结构体指针处理链表
- 用指针处理链表例题(二)
- 用指针处理链表(面试经常测试点之一)
- 用指针处理链表例题(三)
- 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
- 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
- 用指针处理链表例题(一)
- 用指针处理链表
- 指针动态创建数组,二维指针处理字符数组,链表对象排序
- 结构体指针处理链表
- 用指针处理链表
- 链表操作造成的指针失效问题(类比STL中的迭代器失效)
- 为何在自定义消息处理函数中无法利用wParam或lParam传递指针?
- 一个双向链表的单指针实现
- 给定链表的头指针和一个结点指针,在O(1) 时间删除该结点
- C#调用Win32 API如何处理指针类型的参数
- CSharp Tips:调用Win32 API如何处理指针类型的参数
- bo2-4.cpp设立尾指针的单循环链表(存储结构由c2-2.h定义)的12个基本操作
- VC.net嵌入汇编处理指针的方法
- 在delphi里利用指针构造链表