回 帖 发 新 帖 刷新版面

主题:[讨论]哪位大侠帮帮我这个菜鸟解决一下这个问题?(数据结构)

修改下列程序,要求
1.利用起泡排序法排序,并显示结果。
2.利用选择排序法排序,并显示结果。
(建立两个单链表分别排序)
#include <cstdlib>
#include<iostream.h>
typedef int ElemType;
typedef struct LNode
{
      ElemType data;
      struct LNode *next;
}LNode,*LinkList;
bool InitList_L(LinkList &L)
{
    L=(LinkList )malloc(sizeof(LNode));
    if (L==NULL)
      return false;
    L->next=NULL;
    return true;
}
bool creat_L(LinkList &L,ElemType a[],int n)
{
      bool k;
      k=InitList_L(L);
      if (!k)
         return false;
      LinkList r=L,p;
      for(int i=0;i<n;i++)
      { 
          p=(LinkList )malloc(sizeof(LNode));
            p->data=a[i];
          p->next=NULL;
          r->next=p;
          r=p;
      }
      return true;
}
int ListLength_L(LinkList L)
{
  int len=0;
  LinkList p=L->next;
  while(p!=NULL)
  {  len++;
     p=p->next;
  }
  return len;
}
bool GetElem_L(LinkList &L,int i,LinkList &p)
{
    int j=1;
    p=L->next;
    while(p!=NULL && j<i)
    {  p=p->next;
       j++;
    }
    if(p)
        return true;
    return false;
}
bool LocateElem_L(LinkList L,ElemType e,LinkList &p)
{
    p=L->next;
    while(p!=NULL && p->data!=e)
        p=p->next;
    if(p==NULL)
        return false;
    return true;
}
bool ListInsert_L(LinkList L,int i,ElemType e)
{
   LinkList p,s;
   p=L;
   int j=0;
   while(p!=NULL && j<i-1)
   {   
       p=p->next;
       j++;
   }
   if(p==NULL || j>i-1)
       return false;
   s=(LinkList)malloc(sizeof(LNode));
   s->data=e;
   s->next=p->next;
   p->next=s;
   return true;
}
bool ListDelete_L(LinkList L,int i,ElemType &e)
{
    LinkList p,q;
    p=L;
    int j=0;
    while(p!=NULL && j<i-1)
    {
        p=p->next;
        j++;
    }
    if(p==NULL || j>i-1)
        return false;
    q=(LinkList)malloc(sizeof(LNode));
    q=p->next;
    p->next=q->next;
    e=q->data;
    free(q);
    return true;
}
void show(LinkList &L)
{
    LinkList p;
    p=L;
    for(int i=0;i<ListLength_L(L);i++)
    {
        p=p->next;
        cout<<p->data<<" ";
        
    }
}

void main()
{
  LinkList L;
  ElemType a[]={15,12,3,46,5,6,2,83,99};
  bool k=creat_L(L,a,9);
  show(L);
  cout<<"    ";
}

回复列表 (共2个回复)

沙发


c++里的c风格啊- -

板凳

是啊,我是初学者,很多都不懂,请多多指点

我来回复

您尚未登录,请登录后再回复。点此登录或注册