集合的“交”运算 void Intersection( Seqlist &A, seqlist &b)i int n=Length(A); int m= Length(B); inti=0 while(i<n)i intx= GetData(A,i);/在A中取一元素 intk=Find(B,x);M在B中查找它 if (k==-1)i Delete(,i); n-i else i++ /未找到在A中删除它
▪ 集合的“交”运算 void Intersection ( SeqList &A, SeqList &B ) { int n = Length ( A ); int m = Length ( B ); int i = 0; while ( i < n ) { int x = GetData ( A, i ); //在A中取一元素 int k = Find ( B, x ); //在B中查找它 if ( k == -1 ) { Delete ( A, i ); n--; } else i++; //未找到在A中删除它 } }
筵表( Linked list) 链表是线性表的链接存储表示 单链表 静态链表 循环链表 双向链表
链表(Linked List) 链表是线性表的链接存储表示 ▪ 单链表 ▪ 静态链表 ▪ 循环链表 ▪ 双向链表
单链表(Singly Linked List 定义:用一组地址任意的存储单元存放 线性表中的数据元素。 存储地址数据域指针域 头指针 ZHANG 13 7 WANG 31 13 null 19 ZHAO 37 25 WU 7 31 ZHOU 37
单链表(Singly Linked List) 定义:用一组地址任意的存储单元存放 线性表中的数据元素。 数据域 指针域 ZHANG 13 WANG 1 LI null ZHAO 37 WU 7 ZHOU 19 SUN 25 存储地址 1 7 13 19 25 31 37 31 头指针
单链表结构 每个元素由结点( Node)构成,它包括两个 拭数据域Data和指针域Link Node data link 存储结构:链式存储结构 特点:存储单元可以不连续。 存取方式:顺序存取
每个元素由结点(Node)构成, 它包括两个 域:数据域Data和指针域Link data link 存储结构:链式存储结构 特点:存储单元可以不连续。 存取方式:顺序存取。 Node 单链表结构
单链表的类型定义 typedef char ListData typedef struct node 链表结点 ListData data: 结点数据域 struct node x link 结点链域 Listnode, typedef listNode x Linklist;/链表头指针 Linklist first 链表头指针
▪ 单链表的类型定义 typedef char ListData; typedef struct node { //链表结点 ListData data; //结点数据域 struct node * link; //结点链域 } ListNode; typedef ListNode * LinkList; //链表头指针 LinkList first; //链表头指针