c++实现单向链表的一些操作
#include<iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <string>
#include <string.h>
#include<stack>
#include<ctime>
#include <sstream>
using namespace std; //链表的数据结构
struct ListNode
{
int value;
ListNode* next;
ListNode () {};
//赋值构造函数
ListNode (int v) : value(v),next(NULL){};
};
// 函数头声明
ListNode* arraytolist (vector<int> a);
void printlist(ListNode* fir);
void insert(ListNode* p, int poi,int in);
void deletenode(ListNode* p, int poi);
void selectionsort(ListNode* p); // 按下F6进行编译
int main()
{
//创建一个链表(2,1,4,3,0,4,-1)
vector<int> a({2,1,4,3,0,4,-1});
ListNode* b=arraytolist(a);
insert(b,2,-10);
deletenode(b,2);
printlist(b);
return 0;
} // 根据数组创建一个链表
ListNode* arraytolist (vector<int> a)
{
ListNode* p=new ListNode(a[0]);
ListNode* fir=p;
for(int i=1;i<a.size();i++)
{
p->next=new ListNode(a[i]);
p=p->next;
}
return fir;
}
//遍历并打印一个链表
void printlist(ListNode* fir)
{
while(fir!=NULL)
{
cout << fir->value << ' ';
fir=fir->next;
}
cout << endl;
}
//插入一个节点(后插入)
void insert(ListNode* p , int poi ,int in)
{
if(poi<0 ) return;
while((0 < poi--) )
{
if(p->next != NULL) p=p->next;
else break;
}
ListNode* mi=new ListNode(in);
mi->next=p->next;
p->next=mi;
}
// 删除节点
void deletenode(ListNode* p, int poi)
{
if(poi<0) return ;
while(0 < poi--)
{
if(p->next !=NULL) p=p->next;
else break;
}
if(p->next !=NULL)
{
ListNode *tmp=p->next;
p->next=tmp->next;
delete tmp;
}
}
c++实现单向链表的一些操作的更多相关文章
- Python3玩转单链表——逆转单向链表pythonic版
[本文出自天外归云的博客园] 链表是由节点构成的,一个指针代表一个方向,如果一个构成链表的节点都只包含一个指针,那么这个链表就是单向链表. 单向链表中的节点不光有代表方向的指针变量,也有值变量.所以我 ...
- ZT C语言链表操作(新增单向链表的逆序建立)
这个不好懂,不如看 转贴:C语言链表基本操作http://www.cnblogs.com/jeanschen/p/3542668.html ZT 链表逆序http://www.cnblogs.com/ ...
- java对单向单向链表的操作
概述:众所周知,数据对于数据的存储时连续的,也就是说在计算机的内存中是一个整体的.连续的.不间断的ADT数据结构.伴随的问题也会随之出现,这样其实对于内存的动态分配是不灵活的.而链表具备这个优点.因此 ...
- 复习下C 链表操作(单向链表)
Object-C 作为C 的包装语言(运行时.消息机制).如果不熟悉C 的话实在玩得太肤浅. 随便深入oc 内部都会接触到C. runtime .GCD.Block.消息机制... 所有强大的功能无不 ...
- C++中如何对单向链表操作
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- Linus:利用二级指针删除单向链表
Linus大神在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level codi ...
- 【转】Linus:利用二级指针删除单向链表
原文作者:陈皓 原文链接:http://coolshell.cn/articles/8990.html 感谢网友full_of_bull投递此文(注:此文最初发表在这个这里,我对原文后半段修改了许多, ...
- C语言实现单向链表及其各种排序(含快排,选择,插入,冒泡)
#include<stdio.h> #include<malloc.h> #define LEN sizeof(struct Student) struct Student / ...
- 输入一个单向链表,输出该链表中倒数第K个结点
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...
随机推荐
- IDEA配置Hystrix过程中报错: java.lang.IllegalStateException: No instances available for user-service
最近在练习微服务架构中, 使用IDEA配置完Hystrix, 添加熔断方法后, 在浏览器中访问未启动的( 含有熔断方法注解 )的路径时, 报出了 : 500: No instances availab ...
- Ubuntu中 apt-get -f install 命令
Ubuntu 下当发现可能是安装的其他软件包不兼容导致了安装包出错时,可以根据提示需要执行“sudo apt-get -f install ”来卸载之前的冲突包. 如果安装过aptitude包,还可 ...
- MATLAB符号求解极限积分微分级数2
一.符号表达式的极限 limit(F,x,a):求当时,符号表达式F的极限. limit(F,a):符号表达式F采用默认自变量(可由函数findsym求得),该函数求F的自变量趋于a时的极限值. li ...
- Centos7服务器环境搭建
1.Apache安装 yum install httpd systemctl start httpd.service #启动 systemctl stop httpd.service#停止 syste ...
- Mybatis之自动生成
使用Mybatis来自动生成我们的dao接口,mapper文件和实体类. 1.pom.xml依赖: <dependencies> <dependency> <groupI ...
- (模板)求逆矩阵luoguP4783
题目链接:https://www.luogu.org/problem/P4783 题意:求矩阵的逆. 思路:高斯消元法求矩阵的逆,n为400,卡常,我是开了O2优化才AC的.. AC代码: #incl ...
- mysql 不支持group by的解决方案
进入mysql命令行 执行如下两句语句 set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_ ...
- [转帖]2019-03-26 发布 深入理解 MySQL ——锁、事务与并发控制
深入理解 MySQL ——锁.事务与并发控制 https://segmentfault.com/a/1190000018658828 太长了 没看完.. 数据库 并发 mysql 639 次阅读 ...
- jenkins持续集成(svn+maven)
一.初始化环境 1.系统管理->插件管理 安装插件 Maven Integration 2.系统管理->全局工具配置 配置jdk.maven 二.项目配置1.源码配置 (使用之前搭建的sv ...
- 「java.util.concurrent并发包」之 CopyOnWrite
一 CopyOnWrite容器概述 Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容C ...