数据结构 C语言版 李云清 第03章_线性表(II)新.pptVIP

  • 43
  • 0
  • 约2.61万字
  • 约 139页
  • 2015-12-24 发布于广东
  • 举报

数据结构 C语言版 李云清 第03章_线性表(II)新.ppt

void print_hlink_list(node *head) { node *p; p=head-next;/*从第一个(实际)结点开始*/ if(!p) printf(\n带头结点单链表是空的!); else { printf(\n带头结点的单链表各个结点的值为:\n); while(p) { printf(%5d,p-info);p=p-next;} } } 算法3.11输出带头结点单链表中各个结点的值 /*****************************************************/ /* 在带头结点单链表中查找一个值为x的结点 */ /* 文件名hlnkfinx.c,函数名find_num_hlink_list() */ /*****************************************************/ node *find_num_hlink_list(node *head,datatype x) { node *p; p=head-next;/*从第一个(实际)结点开始*/ while(pp-info!=x) p=p-next; return p; } 算法3.12在带头结点单链表中查找一个值为x的结点 node *find_pos_hlink_list(node *head,int i) { int j=0; node *p=head; if(i0){printf(\n带头结点的单链表中不存在第%d个结点!,i);return NULL;} while(pi!=j)/*没有查找完并且还没有找到*/ { p=p-next;j++;/*继续向后(左)查找,计数器加1*/ } return p;/*返回结果,i=0时,p指示的是头结点*/ } 算法3.13在带头结点单链表中查找第i个结点 带头结点单链表的插入过程见图3.7 : 2.4.2顺序队列及其实现 队列的顺序存储在C语言中可以用一维数组表示,为了标识队首和队尾,需要附设两个指针front和rear,front指示的是队列中最前面,即队首结点在数组中元素的下标,rear指示的是队尾结点在数组中元素的下标的下一个位置,也就是说rear指示的是即将插入的结点在数组中的下标。 队列的几种状态 : 下标 下标 下标 下标 下标 队列的顺序存储结构的C语言描述如下: /*****************************/ /* 队列(顺序存储)的头文件 */ /* 文件名seqqueue.h */ /*****************************/ #define MAXSIZE 100 typedef int datatype; typedef struct{ datatype a[MAXSIZE]; int front; int rear; }sequence_queue; 顺序存储队列的几个基本操作的具体实现 : /************************************************/ /* 队列(顺序存储)初始化 */ /* 文件名seqqinit.c, 函数名init_sequence_queue() */ /************************************************/ void init_sequence_queue(sequence_queue *sq) { sq-front=sq-rear=0; } 算法2.20队列(顺序存储)初始化 /***************************************************/ /* 判断队列(顺序存储)是否为空 */ /*文件名seqqempt.c, 函数名is_empty_sequence_queue() */ /***************************************************/ int is_empty_sequence_queue(sequence_queue sq) { return (sq.front==sq.rear? 1:0); } 算法2.21判断队列(顺序存储)是否为空 /*****************

文档评论(0)

1亿VIP精品文档

相关文档