dev c++ 中怎么创建链表。。
答案:3 悬赏:70
解决时间 2021-04-07 01:30
- 提问者网友:江鱼
- 2021-04-06 20:16
RT,本人初中党一枚,正在pascal转c++ = =答案尽量简单些,有注释,谢了【顺便问一下malloc和new区别
最佳答案
- 二级知识专家网友:邪性洒脱
- 2021-04-06 21:22
1、C++有很多库,标准模板库有现成的list模板类型,不用自己再创建和维护链表,毕竟是众多智慧的结晶;
也可以自己创建链表,当然维护和使用不是很方便。
STL中list的使用:
STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。
文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list<int>::iterator citer用来指向c1或c2元素。
list对象的声明构造():
A. list<int>c0; //空链表
B. list<int>c1(3); //建一个含三个默认值是0的元素的链表
C. list<int>c2(5,2); //建一个含五个元素的链表,值都是2
D. list<int>c4(c2); //建一个c2的copy链表
E. list<int>c5(c1.begin(),c1.end());
//c5含c1一个区域的元素[_First, _Last)。
2、malloc和new都是分配内存,malloc使用起来复杂些,要计算分配空间的大小,new就不用;
malloc和free配合使用,而new和delete配合使用。
也可以自己创建链表,当然维护和使用不是很方便。
STL中list的使用:
STL中的list就是一双向链表,可高效地进行插入删除元素。现总结一下它的操作。
文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list<int>::iterator citer用来指向c1或c2元素。
list对象的声明构造():
A. list<int>c0; //空链表
B. list<int>c1(3); //建一个含三个默认值是0的元素的链表
C. list<int>c2(5,2); //建一个含五个元素的链表,值都是2
D. list<int>c4(c2); //建一个c2的copy链表
E. list<int>c5(c1.begin(),c1.end());
//c5含c1一个区域的元素[_First, _Last)。
2、malloc和new都是分配内存,malloc使用起来复杂些,要计算分配空间的大小,new就不用;
malloc和free配合使用,而new和delete配合使用。
全部回答
- 1楼网友:我们只是兮以城空
- 2021-04-06 22:30
用标准库,里面有list和forward_list,include到工程里面直接用就行,如:list<string> svec(10,"hi!");//十个string类型数据"hi!"
malloc是C语言中的申请内存函数,申请成功返回申请到内存的首地址,C++里用new操作符来申请内存。
- 2楼网友:怪咖小青年
- 2021-04-06 22:20
本题的一个完整的c程序如下,程序在win-tc和dev-c++下都调试通过。
#include
#include
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
int main()
{
int i,n;
link ptr,q,head;
head=(link)malloc(sizeof(node));
ptr=head;
printf("please input array. when input is -1, end.\n");
while(scanf("%d",&n),n!=-1)
{ ptr->data=n;
ptr->next=(link)malloc(sizeof(node));
q=ptr;
ptr=ptr->next;
}
q->next=null;
free(ptr);
ptr=head;
while(ptr!=null)
{ printf("the value is ==>%d\n",ptr->data);
ptr=ptr->next;
}
free(head);
system("pause");
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯