单链表的相关操作之创建
来源:互联网 发布:剑三丐姐成女捏脸数据 编辑:程序博客网 时间:2024/05/29 14:54
单链表的创建
- 带头结点
- 不带头结点
代码示例
#include<iostream>#include<cstdio>using namespace std;struct ListNode{ int val; ListNode *next;};//带头节点的创建ListNode * CreatelistisNode(ListNode *L){ if(L==NULL) { ListNode *head=new ListNode; head->next=NULL; L=head; } ListNode *p=L; int n; printf("请输入要创建的单链表的长度:"); scanf("%d",&n); for(int i=0;i<n;i++) { int number; printf("请输入第%d个值:",i+1); scanf("%d",&number); ListNode *newnode=new ListNode; newnode->val=number; newnode->next=NULL; p->next=newnode; p=newnode; } return L;}//不带头节点的创建ListNode* CreateListNode(ListNode *head){ ListNode *p=head; int n; printf("请输入要创建的单链表的长度:"); scanf("%d",&n); for(int i=0; i<n; i++) { int number; printf("请输入第%d个值:",i+1); scanf("%d",&number); if(p==NULL) { ListNode *s = new ListNode; //定义一个s节点用来存放每次要输入的值 s->val = number; s->next = NULL; head=s; p=s; } else { ListNode *s = new ListNode; //定义一个s节点用来存放每次要输入的值 s->val = number; s->next = NULL; p->next = s; p = s; } } return head;}void prinfout(ListNode *L){ ListNode *p=L; while(p!=NULL) { printf("%d ",p->val); p=p->next; }}int main(){ ListNode *L=NULL; ListNode *p1=CreateListNode(L); prinfout(p1); cout<<endl; ListNode *p2=CreatelistisNode(L); prinfout(p2->next); return 0;}
小结:在创建链表时要考虑传入的指针是否为空,然后分情况讨论。
阅读全文
0 0
- 单链表的相关操作之创建
- 二叉树的创建与相关操作
- 单链表的相关操作
- 单链表的相关操作
- 单链表的相关操作
- 单链表的相关操作
- 单链表的相关操作
- 与日期相关的操作之Timestamp
- Hadoop学习之HDFS的相关操作
- Mysql之相关表的操作
- Lucene之SolrJ的相关操作(十一)
- python之文件的相关操作
- c++实现循环单链表的相关操作(创建,插入,删除,保序插入,统计结点)
- 数据结构--二叉树的创建和相关操作
- 双向链表的创建和相关操作
- Firebug 查看输出创建的对象,并执行相关操作。
- Oracle创建用户与表空间的相关操作
- node.js文件的复制,创建文件夹等相关操作
- 设计模式——简单工厂
- HTTP与HTTPS的区别
- MVP简单实现
- [SMOJ2161]棋盘
- $.each遍历json对象
- 单链表的相关操作之创建
- c++引用
- iOS右滑pop功能的实现
- Unity中Loading页面存在的究极原因
- AXIOS全攻略,vue中全局引入
- html5 audio读取文件流播放音频
- JS生成二维码
- UVA10817HeadmastersHeadache
- UVA