int i;
h=(JD*)malloc(sizeof(JD));
h->data=0;
算法描述
h->link=NULL; for(i=n;i>0;i--)
{s=(JD*)malloc(sizeof(JD));
s->data=a[i-1];
s->link=h->link;
h->link=s;
} return (h); 第9页
10单链表特点它是一种动态结构整个存储空间为多个链表共用不需预先分配空间指针占用额外存储空间不能随机存取查找速度慢请编程序建立一个带有头结点的单向链表链表结点中的数据通过键盘输入当输入数据为1时表示输入结束
链表
成俊燕 mail:zjucheng@
链表的定义
• 节点离散分布 • 节点之间通过指针连接 • 每个节点只有一个前驱,一个后继节点 • 首节点没有前驱,尾节点没有后继 • 术语
– 不需预先分配空间 – 指针占用额外存储空间 – 不能随机存取,查找速度慢
第11页
• 请编程序建立一个带有头结点的单向链表, 链表结点中的数据通过键盘输入,当输入 数据为-1时,表示输入结束。(链表头结点 的data域不放数据,表空的条件是ph-
>next==NULL).
• 有两个链表a和b。设结点中包含学号、姓 名。从a链表中删去与b链表中有相同学号 的那些结点。
第3页
例 线性表 (ZHAO,QIAN,SUN,LI,ZHOU,WU,ZHENG,WANG)
存储地址 数据域 指针域
头指针 H 31
H
1
LI
43
7
QIAN
13
13
SUN
1