- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课后练习—第2章
第二章 线性表;学习要点;学习要点;一、判断对错题;二、单项选择题;二、单项选择题;二、单项选择题;三、填空题;四、简答题;四、简答题;四、简答题;四、简答题;4. 分析下述三个算法的具体功能。
ListNode *Demo1(LinkList L, ListNode *p)
{ //L是有头结点的单链表
ListNode *q=L-next;
while(qq-next!=p)
q=q-next;
if(q)
return q;
else Error(*p not in L);
};4. 分析下述三个算法的具体功能。
void Demo2(ListNode *p, ListNode *q)
{ //p,*q是链表中的两个结点
DataType temp;
temp=p-data;
p-data=q-data;
q-data=temp;
};4. 分析下述三个算法的具体功能。
LinkList test1( LinkList L )
{ //L是无头结点的单链表
LinkList *q, *p;
if ( LL-next )
{q=L; L=L-next; p=L;
while ( p-next ) p=p-next;
p-next=q; q-next=NULL;
}
return L;
};5. 设有多项式
⑴ 请画出 的单链表存储表示。
⑵ 设 ,求得并画出的单链表存储表示。;五、程序设计题;Status ListDelete _L( LinkList L, ElemType x )
{ //在带头结点的单链表L中,删除值为x的结点。
LNode *p,*q;
p = L;
while ( p-next p-next-data!=x ) { q=p; p = p-next; }
//寻找值为x的结点,并令p指向其前驱(被删结点);
//指针q指向*p结点的前驱结点。
if ( !(p-next) ) return ERROR; //表中不存在值为x的结点。
p–next=q–next; //删除元素(结点)x的前驱结点。
free( p ) ; //释放结点的存储空间。
return OK;
};线性表的结构定义:
--------线性表的动态分配顺序存储结构---------
#define LIST_INIT_SIZE 100 //顺序表的初始分配量
#define LISTINCREMENT 10 //顺序表的分配增量
typedef struct{
ElemType *elem; //存储空间基址:即数组的起始地址
int length; //顺序表的当前长度:实际的元素个数
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList;;2. 将一个顺序表中从第i个结点开始的k个结点删除。; if ( k=((q-p)+1) ) //第i个元素后的所有元素均被删除
{ L.length = i-1; return OK; }
else
for( ; k=1; k=1; --k; )
{ for ( ++p; p = q; ++p ) *( p-1 ) = *p; //到第i+1个元素平移
p++;
--L.length; q = L.elem + L.length – 1;
}
return OK; //返回删除元素成功标志
} ;五、程序设计题;Status LinkListInsert( LinkList L, ElemType x ){
//在升序链表L(带头结点)中插入一个新元素结点x
q=L; p=q-next;
//找到插入位置
while( p!=NULLp-data=x )
{ q=p; p=p-next; }
s=( LinkList )malloc( sizeof(LNode) ); //生成新结点
s-data=x;
s-next=p; //插入结点
q-next=s;
}//LinkListInsert;结束
您可能关注的文档
- 数学选修2—31.2排列(优限法、捆绑法、插空法)的运用.ppt
- 数学选修1—2课件3.1.2.ppt
- 数学选修2—3正态分布.ppt
- 数学高考二轮复习—概率与统计.ppt
- 数学高考和理性思维.ppt
- 数学:1.3.2《算法案例—秦九韶算法》PPT课件(新人教A版必修3).ppt
- 数学:2.1.1《向量概念》课件(新人教B版必修4).ppt
- 数学:2.1.1《离散型随机变量及其分布列—离散型随机变量》PPT课件(新人教A版—选修2—3).ppt
- 数学:2.1.2—3《向量的几何表示和相等向量与共线向量》PPT课件(新人教A版必修4).ppt
- 数学:2.1.2《离散型随机变量及其分布列—离散型随机变量分布列》.ppt
文档评论(0)