Responsive image

问题 2939 --设计一个算法将其所有元素逆置

2939: 设计一个算法将其所有元素逆置

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

有一个带头结点的双链表L,设计一个算法将其所有元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,…,最后一个元素变为第1个元素。
组合提交代码(仅支持C++)
#include<iostream>
#include <stdio.h>
#include <malloc.h>
using namespace std;
typedef int ElemType;
typedef struct DNode //定义双链表结点类型
{
ElemType data;
struct DNode *prior; //指向前驱结点
struct DNode *next; //指向后继结点
} DlinkNode;
void InitList(DlinkNode *&L)
{
L=(DlinkNode *)malloc(sizeof(DlinkNode));  //创建头结点
L->prior=L->next=NULL;
}
void DestroyList(DlinkNode *&L)
{
DlinkNode *pre=L,*p=pre->next;
while (p!=NULL)
{
free(pre);
pre=p;
p=pre->next;
}
free(pre);
}
void DispList(DlinkNode *L)
{
DlinkNode *p=L->next;
while (p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
void CreateListR(DlinkNode *&L,ElemType a[],int n)
//尾插法建双链表
{
/**************begin************/

/**************end************/
}
void reverse(DlinkNode *&L) //双链表结点逆置
{
/**************begin************/

/**************end************/
}
int main()
{
ElemType a[]={1,8,0,4,9,7,5,2,3,6};
DlinkNode *L;
CreateListR(L,a,10);
printf("L:");DispList(L);
printf("逆置\n");
reverse(L);
printf("L:");DispList(L);
DestroyList(L);
return 1;
}


提示

组合提交代码,仅需要提交函数定义,不要把所有的都提交了

你应该提交





void CreateListR(DlinkNode *&L,ElemType a[],int n)

//尾插法建双链表

{

/**************begin************/



/**************end************/

}

void reverse(DlinkNode *&L) //双链表结点逆置

{

/**************begin************/



/**************end************/

}


来源

 

[提交][状态]
ACM算法攻关部