数据结构-单链表的创建
(2013-08-14 16:06:04)
标签:
it |
分类: 数据结构 |
数据结构-单链表的创建
时间限制(普通/Java):1000MS/3000MS
运行内存限制:65536KByte
总提交:139 测试通过:79
总提交:139 测试通过:79
描述
单链表的创建可以分两步完成,第一步,初始化单链表,向系统申请单链表头节点,设置单链表的初始长度为0和初始开辟的内存空间大小;第二步通过输入的数据元素逐个插入数据元素到单链表,最终完成创建单链表。下面请采用逆向插入的方法创建一个单链表,即从空表的初始状态开始,依次建立各个元素结点,并逐个插入到单链表中,插入要求从表尾到表头逆向建立。
请用如下函数完成上述功能,线性表List的定义如下(强烈建议使用下面的定义和函数结构)
typedef struct List
{
Elemtype *elem;
int length;
int listsize;
};
int CreateList_L(LinkList &L,int n)
输入
输入有多组测试数据,每组测试数据包括2行,第一行是一个字符串和一个数字N代表要创建单链表的名称和长度。第二行是要创建的N个元素的数据。
输出
输出每组数据的单链表的创建结果。
样例输入
L2 5
129 32 156 73 17
L3 11
27 137 50 14 22 133 120 89 7 126 179
129 32 156 73 17
L3 11
27 137 50 14 22 133 120 89 7 126 179
样例输出
CreateList_L(L2, 5) : L2 = ( 129
32 156 73 17 )
CreateList_L(L3, 11) : L3 = ( 27 137 50 14 22 133 120 89 7 126 179 )
CreateList_L(L3, 11) : L3 = ( 27 137 50 14 22 133 120 89 7 126 179 )
//**************************************
#include
<iostream>
#include <string>
using namespace std;
#include <string>
using namespace std;
typedef struct LNode
{
int
data;
struct
LNode*next;
}LNode,*List;
{
}LNode,*List;
//The first task
void CreateList(List &L,int n,int c[])
{
int i;
LNode
*p;
L=(List)malloc(sizeof(LNode));
L->next=NULL;
for(i=n-1;i>=0;i--)
{
p=(List)malloc(sizeof(LNode));
p->data=c[i];
p->next=L->next;
L->next=p;
}
}
void CreateList(List &L,int n,int c[])
{
}
//The main function
int main()
{
List L;
int n,*c,i;
char a[3];
while(cin>>a>>n)
{
c=new int[n];
for(i=0;i<n;i++)
cin>>c[i];
CreateList(L,n,c);
cout<<"CreateList_L("<<a<<",
"<<n<<")
:
"<<a<<"
= ( ";
for(i=0;i<n;i++)
{
L=L->next;
cout<<L->data<<'
';
}
cout<<")"<<endl;
}
return 0;
}
int main()
{
}
前一篇:数据结构-单链表节点的插入
后一篇:数据结构-单链表的有序合并