2线性表的链式存储结构链表 定义单链表结点类型: typedef struct LNode ElemType data struct Node *next: /指向后继结点* 3 Linklist;
2.线性表的链式存储结构—链表 定义单链表结点类型: typedef struct LNode { ElemType data; struct LNode *next; /*指向后继结点*/ } LinkList;
定义双链表结点类型: typedef struct DNode ElemType data; struct DNode“ prior /指向前驱结点* struct DNode *next 指向后继结点 3 DLinklist;
定义双链表结点类型: typedef struct DNode { ElemType data; struct DNode *prior; /*指向前驱结点*/ struct DNode *next; /*指向后继结点*/ } DLinkList;
(1)单链表基本运算的实现 重点:头插法建表和尾插法建表算法,它是很 多算法设计的基础
(1)单链表基本运算的实现 重点:头插法建表和尾插法建表算法,它是很 多算法设计的基础
【例21】设C={a1b1,a2,b2,…,a,bn为一线 性表,采用带头结点的hc单链表存放,编写 一个就地算法,将其拆分为两个线性表,使 得 {a1:a2y…,an},C={b 1902
【例2.1】 设C={a1 ,b1 ,a2 ,b2 ,…,an ,bn }为一线 性表,采用带头结点的hc单链表存放,编写 一个就地算法,将其拆分为两个线性表,使 得: A={a1 ,a2 ,…,an },C={b1 ,b2 ,…,bn }
void fun(LinkList hc, LinkList*&ha LinkList *&hb) Linklist *p=hc->next, ra, rb; ha=he;/ha的头结点利用hc的头结点* ra=ha;/ra始终指向ha的末尾结点* hb= linklist *)malloc(sizeof(Lin kLis)); 创建hb头结点* rb=hb;/rb始终指向hb的末尾结点
void fun(LinkList *hc, LinkList *&ha, LinkList *&hb) { LinkList *p=hc->next,*ra,*rb; ha=hc; /*ha的头结点利用hc的头结点*/ ra=ha; /*ra始终指向ha的末尾结点*/ hb=(LinkList *)malloc(sizeof(LinkList)); /*创建hb头结点*/ rb=hb; /*rb始终指向hb的末尾结点*/