• 基本操作之一(单链表的建立与遍历)


    一、使用typedef 创建构造数据类型时

    1 typedef struct LNode
    2 {
    3      ElemType   data;     //数据域
    4      struct LNode  *next; //指针域
    5 } LNode, *LinkList; 

    若有迭代(在第四行),则第一行的“LNode”不可省略。

    二、LNode *和*LinkList是等价的(都可以用来指向新的节点)

    为了提高程序的可读性,在此对同一结构体指针类型起了两个名称

     1 int a = 9;    
     2 LNode L1;
     3 L1.data = a;
     4 L1.next = NULL;
     6 LinkList L2;//用LinkList定义结构体变量L2 
     7 L2 = &L1;   
     9 LNode *L3;
    10 L3 = &L1;

    三、初始化和创建单链表时要用引用调用保存数据

    1 Status InitList( LinkList & ); //函数声明
    2 
    3 Status InitList( LinkList &L )
    4 
    5 void CreateList( LinkList &, int ); //函数声明
    6 
    7 void CreateList( LinkList &L, int n )

    四、若要访问结构体指针类型内的成员变量,有两种方式:p-> 和 (*p).

     1 void CreateList( LinkList &L, int n )
     2 {
     3     LNode *p, *r; 
     4     r = L ; //尾指针r指向头结点     
     5     for( int i=0; i<n; ++i )
     6     { 
     7         p = new LNode ;  
     8         cin >> (*p).data; 
     9         p->next = NULL;
    10         r->next = p;
    11         r = p ;
    12     } 
    13 }

    五、清空链表

     1 void DestroyList( LinkList L )
     2 {//回收L的所有结点的空间 
     3     LNode *p = L, *q;//L已经是一个地址了所以不用& 
     4     while ( p ) //当p指向结点不为空 
     5     {    
     6        q = p->next;    //q指向p的下一结点 
     7        delete p; //回收p指向的结点空间 
     8        p = q; //p指向q指向的结点 
     9     }
    10 }
  • 相关阅读:
    Maven常用命令:
    正向代理、反向代理、透明代理
    linux命令ps aux|grep xxx详解
    Java中Comparable和Comparator区别小结
    Java Queue之PriorityQueue
    java读写分离的实现
    CSS颜色名称和颜色值
    使用Access-Control-Allow-Origin解决跨域
    Tomcat 下启用 https:// 访问
    使用Jedis操作redis
  • 原文地址:https://www.cnblogs.com/Winston-wmj/p/10547113.html
Copyright © 2020-2023  润新知