好文档 - 专业文书写作范文服务资料分享网站

数据结构 清华大学出版社 严蔚敏吴伟民编著

天下 分享 时间: 加入收藏 我要投稿 点赞

PtrL->Data[i-1] = X; /*新元素插入*/

PtrL->Last++; /*Last仍指向最后元素*/ return; }

7、删除算法

void Delete( int i, List *PtrL ) { int j;

if( i < 1 || i > PtrL->Last+1 ) { /*检查空表及删除位置的合法性*/

printf (“不存在第%d个元素”, i ); return ; }

for ( j = i; j <= PtrL->Last; j++ )

PtrL->Data[j-1] = PtrL->Data[j]; /*将 ai+1~ an顺序向前移动*/

PtrL->Last--; /*Last仍指向最后元素*/ return; } 8、求表长

int Length ( List *PtrL )

{ List *p = PtrL; /* p指向表的第一个结点*/ int j = 0;

while ( p ) { p = p->Next;

j++; /* 当前p指向的是第 j 个结点*/

} return j; } 9、查找

(1)按序号查找: FindKth; List *FindKth( int K, List *PtrL ) { List *p = PtrL; int i = 1;

while (p !=NULL && i < K ) { p = p->Next; i++; }

if ( i == K ) return p; /* 找到第K个,返回指针 */ else return NULL; /* 否则返回空 */ }

(2)按值查找: Find

List *Find( ElementType X, List *PtrL ) {

List *p = PtrL;

while ( p!=NULL && p->Data != X ) p = p->Next; return p; }

10、插入(在链表的第 i-1(1≤i≤n+1)个结点后插入一个值为X的新结点)

List *Insert( ElementType X, int i, List *PtrL ) { List *p, *s;

if ( i == 1 ) { /* 新结点插入在表头 */

s = (List *)malloc(sizeof(List)); /*申请、填装结点*/ s->Data = X; s->Next = PtrL;

return s; /*返回新表头指针*/ }

p = FindKth( i-1, PtrL ); /* 查找第i-1个结点 */ if ( p == NULL ) { /* 第i-1个不存在,不能插入 */

printf("参数i错"); return NULL;

}else {

s = (List *)malloc(sizeof(List)); /*申请、填装结点*/

s->Data = X;

s->Next = p->Next; /*新结点插入在第i-1个结点的后面*/

p->Next = s; return PtrL; } }

11、删除(删除链表的第 i (1≤i≤n)个位置上的结点)

List *Delete( int i, List *PtrL ) { List *p, *s;

if ( i == 1 ) { /* 若要删除的是表的第一个结点 */

s = PtrL; /*s指向第1个结点*/

PtrL = PtrL->Next; /*从链表中删除*/ free(s); /*释放被删除结点 */

return PtrL; }

p = FindKth( i-1, PtrL ); /*查找第i-1个结点*/ if ( p == NULL ) {

printf(“第%d个结点不存在”, i-1); return NULL;

} else if ( p->Next == NULL ){

printf(“第%d个结点不存在”, i); return NULL;

} else {

s = p->Next; /*s指向第i个结点*/ p->Next = s->Next; /*从链表中删除*/ free(s); /*释放被删除结点 */

return PtrL; } }

12、链表不具备的特点是 1 。

①可随机访问任一节点 ②插入删除不须要移动元素 ③不必事先估计存储空间 ④所需空间与其长度成正比 13、带头结点的单链表head为空的判定条件是 2 。

①head==NULL ②head->next==NULL ③head->next==head ④head!=NULL

14、如果最常用的操作是取第i个结点及其前驱,则采用 4 存

数据结构 清华大学出版社 严蔚敏吴伟民编著

PtrL->Data[i-1]=X;/*新元素插入*/PtrL->Last++;/*Last仍指向最后元素*/return;}7、删除算法voidDelete(inti,List*PtrL){intj;
推荐度:
点击下载文档文档为doc格式
00r768k7x33pit886asl2xn8u9whcj0049r
领取福利

微信扫码领取福利

微信扫码分享