#include <iostream>

using namespace std;
const int N = 10;
typedef int ELEMTYPE; typedef struct Node
{
ELEMTYPE data;
Node *next;
}LNode,*LinkList; void initLinkList(LinkList &L);
int insertList(LinkList &L,int index, ELEMTYPE e);
int deleteList(LinkList &L, int index,ELEMTYPE &e);
void printLinkList(LinkList &L); int main()
{ LinkList L;
initLinkList(L);
for(int i=1;i<=N;i++)
{
insertList(L,i,i);
}
printLinkList(L);
return 0;
} void initLinkList(LinkList &L)
{
L = new LNode;
L->data = 0;
L->next = NULL;
}
int insertList(LinkList &L,int index, ELEMTYPE e)//插入到第index个元素前面
{
if(index<1 || index>(L->data+1))
return 0; LNode *p = L;
int num = 0;
while(num<index-1)
{
p = p->next;
num++;
} LNode *q = new LNode;
q->data = e;
q->next = p->next;
p->next = q;
L->data ++;
return 1;
} int deleteList(LinkList &L, int index,ELEMTYPE &e)
{ if(index<1 || index>L->data) return 0; LNode *p = L;
int num = 0; while(num<index-1)
{
p = p->next;
num++;
}
LNode *q = p->next;
e = q->data;
p->next = q->next;
delete q;
return 1;
}
void printLinkList(LinkList &L)
{
LNode *p = L;
while(p->next)
{
p = p->next;
cout<<p->data<<"\t";
}
cout<<endl;
}

单链表C/C++实现的更多相关文章

  1. 时间复杂度分别为 O(n)和 O(1)的删除单链表结点的方法

    有一个单链表,提供了头指针和一个结点指针,设计一个函数,在 O(1)时间内删除该结点指针指向的结点. 众所周知,链表无法随机存储,只能从头到尾去遍历整个链表,遇到目标节点之后删除之,这是最常规的思路和 ...

  2. 单链表的C++实现(采用模板类)

    采用模板类实现的好处是,不用拘泥于特定的数据类型.就像活字印刷术,制定好模板,就可以批量印刷,比手抄要强多少倍! 此处不具体介绍泛型编程,还是着重叙述链表的定义和相关操作.  链表结构定义 定义单链表 ...

  3. Java实现单链表的各种操作

    Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素   4.实现链表的反转   5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ...

  4. [LeetCode] Linked List Cycle II 单链表中的环之二

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...

  5. c++单链表基本功能

    head_LinkNode.h /*单链表类的头文件*/#include<assert.h>#include"compare.h"typedef int status; ...

  6. 单链表、循环链表的JS实现

    数据结构系列前言: 数据结构作为程序员的基本知识,需要我们每个人牢牢掌握.近期我也展开了对数据结构的二次学习,来弥补当年挖的坑......   当时上课的时候也就是跟着听课,没有亲自实现任何一种数据结 ...

  7. C代码实现非循环单链表

    C代码实现非循环单链表, 直接上代码. # include <stdio.h> # include <stdlib.h> # include <malloc.h> ...

  8. 分离的思想结合单链表实现级联组件:CascadeView

    本文介绍自己最近做省市级联的类似的级联功能的实现思路,为了尽可能地做到职责分离跟表现与行为分离,这个功能拆分成了2个组件并用到了单链表来实现关键的级联逻辑,下一段有演示效果的gif图.虽然这是个很常见 ...

  9. 数据结构:单链表结构字符串(python版)添加了三个新功能

    #!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ...

  10. 数据结构:单链表结构字符串(python版)改进

    此篇文章的replace实现了字符串类的多次匹配,但依然有些不足. 因为python字符串对象为不变对象,所以replace方法并不修改原先的字符串,而是返回修改后的字符串. 而此字符串对象时用单链表 ...

随机推荐

  1. Protobuf语言指南(转)

    Protobuf语言指南 l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 ...

  2. NOIP2011多项式系数[快速幂|组合数|逆元]

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  3. 嵌入式Linux驱动学习之路(三)u-boot配置分析

    u-boot配置流程分析 执行make tiny4412_config后,将会对u-boot进行一些列的配置,以便于后面的编译. 打开顶层目录下的Makefile,查找对于的规则tiny4412_co ...

  4. 用javascript实现html元素的增删查改[xyytit]

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. EF的入门使用 (电影管理)

    控制器代码: public class HomeController : Controller { private NewDBContext ndc = new NewDBContext(); pub ...

  6. HTML-学习笔记(1)

    HTML元素 HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 大多数HTML元素可以嵌套(可以包含其他的HTML元素) HTML 文档由嵌套的 HTML ...

  7. python魔法函数的一些疑问

    看了魔法函数,有一点疑问.1中需要用self.word才能执行,而2直接用self就可以执行.而1中Word继承了int基本类型,但在__new__时并没有什么卵用.当用 Word(“123”)来实例 ...

  8. 修改Esxi克隆的CentOS的IP地址

    1.读取/etc/udev/rules.d/70-persistent-net.rules文件中eth1的MAC地址. 2.编辑文件 /etc/sysconfig/network-script/ifc ...

  9. uploadify firefox 401

    uploadify在firefox下上传会报401错误:这是因为java的框架把其拦截了 拦截的原因是,firefox下的flash在请求和发送请求的时候不会携带cookie和session过去,造成 ...

  10. 利用mybatis-generator自动生成代码

    mybatis-generator有三种用法:命令行.eclipse插件.maven插件.个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上可以通用. 下面是从官 ...