直接上例子

  1. int main()
  2. {
  3. int a1[]={,,};
  4. int a2[]={,,};
  5.  
  6. Listnode *head=NULL,*temp;
  7. head=(Listnode*)malloc(sizeof(Listnode));//头节点
  8. head->next=NULL;
  9. /*1.new node in head->next,head on the botom
  10. for (int i=0;i<3;i++)
  11. {
  12. temp=(Listnode*)malloc(sizeof(Listnode));
  13. temp->val=a1[i];
  14.  
  15. temp->next=head->next;//先把上一次插入的链表打断,接入新插入节点的后面
  16. head->next=temp;//然后把链条接入头节点的下面。于是:每一个新节点都插入到头节点之后,于是倒序了
  1. }*/
  2.  
  3. /*2. */
  4.  
  5. Listnode *r;
    r=head; //地址
    for (int i=;i<;i++)
    {
      temp=(Listnode*)malloc(sizeof(Listnode));
      temp->val=a1[i];
      r->next=temp; //每一个新节点都插入到了原来链条的最后,并且链条向后走了一步
      r=temp; //更新最后一个节点
    }
    r->next=NULL; //把最后节点指向NULL
  6.  
  7. temp=head->next;//将链表移到首结点开始打印
    while (temp)
    {
      cout<<"->"<<temp->val<<endl;
      temp=temp->next;
    }
    return ;
    }

1.通过数组建链表

  1. int nums2[] = {,,};
  2. ////////////////////1.
  3. ListNode* head2=new ListNode(nums2[]);
  4. r=head2;
  5. for(int i=;i<sizeof(nums2)/sizeof(int);i++)
  6. {
  7. r->next=new ListNode(nums2[i]);
  8. r=r->next;
  9. }
  10. /////////////2.
  11. ListNode* createList(int a[], int n)
  12. {
  13. ListNode *head=NULL, *p=NULL;
  14. for(int i=; i<n; i++){
  15. if (head == NULL){
  16. head = p = new ListNode(a[i]);
  17. }else{
  18. p->next = new ListNode(a[i]);
  19. p = p->next;
  20. }
  21. }
  22. return head;
  23. }
  24. ListNode* p1 = createList(nums2, sizeof(nums2)/sizeof(int));

2.链表反转

  1. ListNode* reverse(ListNode* first,ListNode* last)
  2. {
  3. ListNode* prev=NULL;
  4. if(!first || !last) return prev;
  5.  
  6. ListNode* tmp=NULL;
  7. while(first && first!=last){
  8. tmp=first->next;
  9. first->next=prev;
  10. prev=first;
  11. first=tmp;
  12. }
  13. last->next=prev;
  14. return last;
  15. }

C++——数据结构之链表的更多相关文章

  1. 学习javascript数据结构(二)——链表

    前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结 ...

  2. linux内核数据结构之链表

    linux内核数据结构之链表 1.前言 最近写代码需用到链表结构,正好公共库有关于链表的.第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域.后来看代码注释发现该 ...

  3. 数据结构之链表-链表实现及常用操作(C++篇)

    数据结构之链表-链表实现及常用操作(C++篇) 0.摘要 定义 插入节点(单向链表) 删除节点(单向链表) 反向遍历链表 找出中间节点 找出倒数第k个节点 翻转链表 判断两个链表是否相交,并返回相交点 ...

  4. python实现数据结构单链表

    #python实现数据结构单链表 # -*- coding: utf-8 -*- class Node(object): """节点""" ...

  5. JAVA数据结构之链表

    JAVA数据结构之链表 什么是链表呢? 链表作为最基本的数据结构之一,定义如下: 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 简单来说呢,链 ...

  6. 基本数据结构:链表(list)

    copy from:http://www.cppblog.com/cxiaojia/archive/2012/07/31/185760.html 基本数据结构:链表(list) 谈到链表之前,先说一下 ...

  7. Linux C 数据结构 ->单向链表<-(~千金散尽还复来~)

    之前看到一篇单向链表的博文,代码也看着很舒服,于是乎记录下来,留给自己~,循序渐进,慢慢 延伸到真正的内核链表~(敢问路在何方?路在脚下~) 1. 简介 链表是Linux 内核中最简单,最普通的数据结 ...

  8. ytu 2231: 交集问题(线性表)(数据结构,链表练习)

    2231: 交集问题(线性表) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 6  Solved: 3[Submit][Status][Web Boar ...

  9. C语言数据结构-单链表的实现-初始化、销毁、长度、查找、前驱、后继、插入、删除、显示操作

    1.数据结构-单链表的实现-C语言 typedef struct LNode { int data; struct LNode* next; } LNode,*LinkList; //这两者等价.Li ...

  10. [C++] 数据结构应用——链表

    C++ 数据结构应用--链表 代码已经封装成class啦,方便使用. 头文件:Linklist.h #include <iostream> /*********************** ...

随机推荐

  1. share memory cache across multi web application

    Single instance of a MemoryCache across multiple application pools on the same server [duplicate] Yo ...

  2. 爬取猎聘大数据岗位相关信息--Python

    猎聘网站搜索大数据关键字,只能显示100页,爬取这一百页的相关信息,以便做分析. __author__ = 'Fred Zhao' import requests from bs4 import Be ...

  3. HTML-参考手册: 颜色混搭

    ylbtech-HTML-参考手册: 颜色混搭 1.返回顶部 1. HTML 颜色混搭 混搭两种颜色,并查看效果: 选择颜色:     #FF0000   #0000FF   顶部颜色:        ...

  4. mac查看python安装路径

    1.terminal : input: which Python 或者 which Python3 2.terminal: input : python  --->import sys  --- ...

  5. AngularJS之ng-class

    https://www.cnblogs.com/CreateMyself/p/5566412.html

  6. JavaScript 学习笔记(初学者)

    Java Script 基础 一. JS的简介     JavaScript是一种网页编程技术,经常用于创建动态交互网页     JavaScript是一种基于对象和事件驱动的解释性脚本语言,类似C语 ...

  7. jmeter 后台运行 setsid bin/jmeter -n -t .jmx文件 -l .jtl文件

    备注: 另外,在Linux下我们有时候希望线程可以在后台运行,这样我们关闭当前连接后,线程依然可以运行,这里提供一个将 jmeter命令设置为后台线程的方法. 使用setsid命令:  setsid  ...

  8. 27-python基础-python3-异常处理(try except)

    到目前为止,在 Python 程序中遇到错误,或“异常”,意味着整个程序崩溃.不希望这发生在真实世界的程序中. 相反,希望程序能检测错误,处理它们,然后继续运行.   实例1: 当试图用一个数除以零时 ...

  9. shell read变量

  10. 转帖:maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

    出处:http://www.cnblogs.com/whgk/p/7121336.html 前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ss ...