9月13日 数据结构学习笔记

1.逻辑结构与储存结构

逻辑结构顾名思义就是逻辑上存在的结构,主要是分为线性与非线性(图或者树状结构)

存储结构主要是存储的方式散列表,链表,数组(顺序储存),索引//其实主要是分不开链表与线性结构与数组、链表,实际上是包含了两者的。

2.链表的构造与遍历

  • 链表的构造是依托结构体与指针达成的,其基本单位为节点,Node(顺便一提,Edge为边)
typedef struct Node{
    int date;
    struct Node *next;//指向后继结点
}Node;//这里Node与struct Node等效
建表操作
1.Node *head,*p,*q;//head,p,q均为指向结构体的指针
2.head=null;//头指针为空
3.p=new Node;//开拓储存空间(在c中代码为Node*p=(Node*)malloc(sizeof(Node))
4.p->date=t;
  p->next=null;//给结构体中的成员赋值,让p中的next为null
5.处理头指针
  if(head==null){
    head=p;//如果头指针还是空的,那么就把p赋值给他
  }else{
    q->next=p;//如果没有,就让上一个结点的next指针指向它
  }
  q=p;让现在这个结点变成上一个结点
  把每一个新节点都当伞兵,到了地方先铺路,然后找前任把路铺过来,前任跑过来,自己再坐飞机去下一个点就好理解多了。
6.☆其实pq就是轮流担任上一结点和当前结点,head只在第一次操作时担任当前结点的任务
P->next与(*p).next有相同的效果

3.做链表的提的时候把图画出来是最好的

4.尾插法与头插法

尾插法就是上面的写的那个,说说头插法
头插法其实就是从头结点与首节点的中间插入
因为在插入前,只有通过头结点可以找到下一个结点
所以首要是要用新结点来继承后一节点的指针
p->next=h->next;
h->next=p;
完成
c++中申请与释放内存的操作分别为
new elementype;
delete elementype;

猜你喜欢

转载自blog.csdn.net/weixin_38706535/article/details/82671683