- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构作业标准答案
PAGE
PAGE #
作者:
日期:
第二章
3.头指针:指向整个链表首地址的指针,标示着整个单链表的开始。
头结点:为了操作方便,可以在单链表的第一个结点之前附设一个结点,该结点的数据域可 以存储一些关于线性表长度的附加信息,也可以什么都不存。
首元素结点:线性表中的第一个结点成为首元素结点。
5.
#define OK 1
#define ERROR 0
Int LDel(Seqlist *L,int i,int k)
{ int j;
if(i<1||(i+k)>(L->last+2))
{ printf(输入的i,k值不合法”);
return ERROR;
}
if((i+k)==(L->last+2))
{ L->last=i-2;
ruturn OK;
}
else
{for(j=i+k-1;jv=L->last;j++)
elem[j-k]=elem[j];
L->last=L->last-k;
return OK;
}
}
7. ( 1)void reverse(SeqList L)
{
int i,j,tmp;
for(i=0, j=L .l ast; i<j; i++,j--)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
(2) void reverse(Li nkList L)// 原地置换
{
Lin kList old_head, n ew_head, temp;
n ew_head =NULL; old_head=L-> n ext;
while ( old_head )
{
temp= old_head-> n ext; old_head-> n ext= n ew_head;
n ew_head= old_head; old_head= temp;
}
L-> n ext= n ew_head;
return( L )
}
8.
#in clude"stdio.h"
#i nclude"malloc.h" struct list
{
int data;
struct list *n ext;
};
void union list()
{
struct list *head,*p;
int i=0;
p1=head1; p2=head2;
head=p=(struct list*)malloc(sizeof(struct list)); while(p1 && p2)
{
p->data=O;
if(p1->data<=p2->data) {
p->n ext=p1;
}
else
{
p->n ext=p2;
}
p=p1; p1=p1- >n ext;
p=p2; p2=p2->n ext;
}
p-> next=p1?p1:p2;
free(headl);
free(head2);
//
//幕
12. typedef struct node
{ int power;
//系数
//系数
//其他信息
//指向后继的指针
float coef;
ElemType other;
struct node *n ext;
} PNode,*PolyLi nkedList;
void PolyDis(PolyLi nkedList poly)
//将poly表示的多项式链表分解为各含奇次幕或偶次幕项的两个循环链表
{ PolyLi nkedList poly2=(PolyLi nkedList)malloc(sizeof(PNode));
表示只含奇次幕的多项式
是只含奇次幕的多项式链表的尾指针
是只含偶次幕的多项式链表当前结点的前驱结点的
r2=poly2; r仁poly;
指针
// poly2
// r2
// r1
p=poly->n ext;while(p!=poly)if(p->power
p=poly->n ext;
while(p!=poly)
if(p->power % 2)
{ r=p->n ext;
r2->n ext=p;r2=p;
//链表带头结点,p指向第一个元素
P=r;
}
else //处理偶次幕
//处理奇次幕
//暂存后继
//结点链入奇次幕链表
//尾指针后移
//恢复当前待处理结点
{ r1- >n ext=p; r1=p; p=p->n ext;
}
r->n ext=poly2; r1- >n ext=poly; //构成循环链表
} // PolyDis
13. void Bin Add( Lin kList L )
{
Node *q, *r, *temp, *s ;
q = L_>n ext; r=L;
while( q!=NULL )
{ if ( q->data ==0)
您可能关注的文档
- 山东省莒县一中2018_2019学年高一英语10月月考试题.docx
- 山东省莒县一中2018_2019学年高二化学10月月考试题无答案.docx
- 山东省莒县一中2018_2019学年高二物理10月月考试题.docx
- 山东省莒县第二中学2018_2019学年高二化学下学期第一次月考试题.docx
- 山东省莒县第二中学2018_2019学年高二地理下学期第一次月考试题无答案.docx
- 山东省莒县第二中学2018_2019学年高二物理上学期元旦竞赛试题无答案.docx
- 山东省菏泽市牡丹区2018_2019学年八年级物理上学期期末试卷含解析.docx
- 山东省邹城二中2019届高三数学上学期12月段性检测试题理.docx
- 山东省金乡县金育高级中学_2017学年高一数学下学期期中试题无答案.docx
- 山东省金乡县金育高级中学_2017学年高一生物下学期期中试题无答案.docx
文档评论(0)