单链表C/C++实现
#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++实现的更多相关文章
- 时间复杂度分别为 O(n)和 O(1)的删除单链表结点的方法
		有一个单链表,提供了头指针和一个结点指针,设计一个函数,在 O(1)时间内删除该结点指针指向的结点. 众所周知,链表无法随机存储,只能从头到尾去遍历整个链表,遇到目标节点之后删除之,这是最常规的思路和 ... 
- 单链表的C++实现(采用模板类)
		采用模板类实现的好处是,不用拘泥于特定的数据类型.就像活字印刷术,制定好模板,就可以批量印刷,比手抄要强多少倍! 此处不具体介绍泛型编程,还是着重叙述链表的定义和相关操作. 链表结构定义 定义单链表 ... 
- Java实现单链表的各种操作
		Java实现单链表的各种操作 主要内容:1.单链表的基本操作 2.删除重复数据 3.找到倒数第k个元素 4.实现链表的反转 5.从尾到头输出链表 6.找到中间节点 7.检测链表是否有环 8.在 ... 
- [LeetCode] Linked List Cycle II 单链表中的环之二
		Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ... 
- c++单链表基本功能
		head_LinkNode.h /*单链表类的头文件*/#include<assert.h>#include"compare.h"typedef int status; ... 
- 单链表、循环链表的JS实现
		数据结构系列前言: 数据结构作为程序员的基本知识,需要我们每个人牢牢掌握.近期我也展开了对数据结构的二次学习,来弥补当年挖的坑...... 当时上课的时候也就是跟着听课,没有亲自实现任何一种数据结 ... 
- C代码实现非循环单链表
		C代码实现非循环单链表, 直接上代码. # include <stdio.h> # include <stdlib.h> # include <malloc.h> ... 
- 分离的思想结合单链表实现级联组件:CascadeView
		本文介绍自己最近做省市级联的类似的级联功能的实现思路,为了尽可能地做到职责分离跟表现与行为分离,这个功能拆分成了2个组件并用到了单链表来实现关键的级联逻辑,下一段有演示效果的gif图.虽然这是个很常见 ... 
- 数据结构:单链表结构字符串(python版)添加了三个新功能
		#!/urs/bin/env python # -*- coding:utf-8 -*- #异常类 class stringTypeError(TypeError): pass #节点类 class ... 
- 数据结构:单链表结构字符串(python版)改进
		此篇文章的replace实现了字符串类的多次匹配,但依然有些不足. 因为python字符串对象为不变对象,所以replace方法并不修改原先的字符串,而是返回修改后的字符串. 而此字符串对象时用单链表 ... 
随机推荐
- ARM学习篇        SDRAM理解
			1.SDRAM单管存储单元 SDRAM单管电路图 C记忆单元 T控制门管 Z字线 W位线 注:图示为N沟道耗尽型MOS管 写入:Z加高电平,MOS导通,W状态决定了电容C的状态 读出:Z加高电平,MO ... 
- C#基础---事件的使用
			一:什么是事件 事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框.每一种控件有自己可以识别的事件,如窗体的加载.单击.双击等事件,编辑框(文本框)的文本改变事件,等等.事 ... 
- MMORPG大型游戏设计与开发(客户端架构 part9 of vegine)
			时间在人们的生活中是多么重要的东西,如果打乱了时间,不知道这个时间会成什么样子.在客户端中,自然也有时间模块,因为不同的时间可能会处理不同的事情,特别是在追求高度自由化的同时,时间也成为了一个很重要的 ... 
- 学习图像算法阶段性总结 (附一键修图Demo) 2016.04.19更新demo
			今天特别感慨,自己从决定研究图像处理,势必要做出一键修图算法. 经历了,三个多月的书籍积累,三个多月的算法调整以及优化. 人是一种奇怪的动物,当你做不到的时候,你以为做到了,自己会感觉很爽,很有成就感 ... 
- codevs哈希水题
			1230 多重hash练习一下,不用也可以 // // main.cpp // codeves1230 // // Created by Candy on 9/29/16. // Copyright ... 
- [No00002E]关于大数据,你不知道的6个迷思
			还是那个观点:计算机,编程语言,互联网,大数据等等都只是工具! 导语:看过美剧<纸牌屋>没?知道这部"白宫甄嬛传"为什么会火吗?靠的是大!数!据! 过去两年,在 Net ... 
- java 22 - 20 多线程之线程池
			程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互. 而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池. 线程池里的每一个线程代码结束后 ... 
- luogu2038[NOIP2014 T4]无线网络发射器选址
			题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129 条东西向街道和129 条南北向街道所形成的网格状,并且相邻 ... 
- 利用substring()方法,把一个表的不同分级所对应的字段名取出来。
			实例:现在有一个物料分类的表.知道表的第四级的值,要取前面的2,3级值. 例如,如图所示: 可以通过取前面几个字段的值,得到对应级别的值.利用substring(),但是因为要写在一句话里. 因此可以 ... 
- FMDB处理动态插入语句
			昨天做一个需求,参数的数量不确定,所以无法使用这个API: - (BOOL)executeUpdate:(NSString*)sql, ... 但是用 - (BOOL)executeUpdate:(N ... 
