天天看点

C++_自定义数据类型

文章目录

    • 结构体的定义和使用
    • 共用体类型
    • 枚举类型
    • 自定义数据类型的应用-链表
      • 链表的概念和分类
      • 链表的运算
        • 遍历
        • 查找
        • 插入
      • 链表实例

结构体的定义和使用

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

只能一个成员一个成员进行赋值。

C++_自定义数据类型
C++_自定义数据类型

对整个结构体对象可以进行赋值运算。

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

指针法需注意。

C++_自定义数据类型
C++_自定义数据类型

是一个值传递的过程。

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

共用体类型

共享存储空间。

C++_自定义数据类型
C++_自定义数据类型

以占字节数最多的对象为公用空间。

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

枚举类型

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

自定义数据类型的应用-链表

链表的概念和分类

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

new之后的空间要delete。

C++_自定义数据类型

链表的运算

遍历

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

查找

C++_自定义数据类型
C++_自定义数据类型
C++_自定义数据类型

插入

C++_自定义数据类型
C++_自定义数据类型

链表实例

#include <iostream>
using namespace std;
typedef int datatype;
struct Node{
    datatype data;
    Node *next;
    Node *prev;
};
void initial(Node *header,Node *tailer,int length){
    int i;
    Node *L = header;
    for(i=0;i<length;i++){
        Node *s;
        s = new Node;
        L -> next = s;
        s -> data = i;
        s -> prev = L;
        s -> next = tailer;
        L = s;
    }
    tailer -> prev = L;
}
void output(Node s){
    if (s.prev == NULL) s = *(s.next);
    if (s.next == NULL) cout << "NULL";
    while(s.next != NULL){
        cout << s.data << endl;
        s = *(s.next);
    }
}
void destroy(Node *header,Node *tailer){
    Node *s = header -> next,*t;
    while(s -> next != NULL){
        t = s -> next;
        delete s;
        s = t;
    }
    header -> next = NULL;
    tailer -> prev = NULL;
}
int main(){
    Node header,tailer;
    header.data = NULL,tailer.data = NULL,header.prev = NULL,tailer.prev = &header,header.next = &tailer,tailer.next = NULL;
    initial(&header, &tailer, 10);
    output(header);
    destroy(&header,&tailer);
}

           
c++

继续阅读