1 / 14
文档名称:

第二章 线性表.doc

格式:doc   页数:14
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第二章 线性表.doc

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第二章 线性表.doc

文档介绍

文档介绍:第二章线性表

Status DeleteK(SqList &a,int i,int k)//删除线性表a中第i个元素起的k个元素
{
  if(i<1||k<0||i+k-1>) return INFEASIBLE;
  for(count=1;i+count-1<=-k;count++) //注意循环结束的条件
    [i+count-1]=[i+count+k-1];
  -=k;
  return OK;
}//DeleteK

Status Insert_SqList(SqList &va,int x)//把x插入递增有序表va中
{
  if(+1>) return ERROR;
  ++;
  for(i=-1;[i]>x&&i>=0;i--)
    [i+1]=[i];
  [i+1]=x;
  return OK;
}//Insert_SqList

int p(SqList A,SqList B)//比较字符表A和B,并用返回值表示结果,值为1,表示A>B;值为-1,表示A<B;值为0,表示A=B
{
  for(i=1;i<=&&i<=;i++)
    if([i]!=[i])
      return [i]>[i]?1:-1;
  if(==) return 0;
  return >?1:-1;    //当两个字符表可以互相比较的部分完全相同时,哪个较长,哪个就较大
}//p

LNode* Locate(LinkList L,int x)//链表上的元素查找,返回指针
{
  for(p=l->next;p&&p->data!=x;p=p->next);
  return p;
}//Locate

int Length(LinkList L)//求链表的长度
{
  for(k=0,p=L;p->next;p=p->next,k++);
  return k;
}//Length

void ListConcat(LinkList ha,LinkList hb,LinkList &hc)//把链表hb接在ha后面形成链表hc
{
  hc=ha;p=ha;
  while(p->next) p=p->next;
  p->next=hb;
}//ListConcat

见书后答案.

Status Insert(LinkList &L,int i,int b)//在无头结点链表L的第i个元素之前插入元素b
{
  p=L;q=(LinkList*)malloc(sizeof(LNode));
  =b;
  if(i==1)
  {
    =p;L=q; //插入在链表头部
  }
  else
  {
    while(--i>1) p=p->next;
    q->next=p->next;p->next=q; //插入在第i个元素的位置
  }
}//Insert

Status Delete(LinkList &L,int i)//在无头结点链表L中删除第i个元素
{
  if(i==1) L=L->next; //删除第一个元素
  else
  {
    p=L;
    while(--i>1) p=p->next;
    p->next=p->next->next; //删除第i个元素
  }
}//Delete

Status Delete_Between(Linklist &L,int mink,int maxk)//删除元素递增排列的链表L中值大于mink且小于maxk的所有元素
{
  p=L;
  while(p->next->data<=mink) p=p->next; //p是最后一个不大于mink的元素
  if(p->next)    //如果还有比mink更大的元素
  {
    q=p->next;
    while(q->data<maxk) q=q->next; //q是第一个不小于max