数据结构
顺序表的表示
#define MAXSIZE 100 typedef struct{ ElemType *elem; int length; }SqList;

1.带头结点和不带头结点的判空条件
first->next = NULL;//带头节点 first = NULL; //不带头节点
2.在P后面插入
s->next = p->next;
p->next = s;
3.删除P后节点
q=p->next; q->next = p->next;
delete q;
链表
struct node
{
int data;
struct node* next;
}LNode, *LinkList;
LNode* head; 等价于struct node* head
LinkList head;等价于LNode* head;









排序

直接插入排序
适合基本有序的序列
第一个数是有序,将无序的第一个数插入到有序中。无序的第一个数再次插入到有序中。





简单选择排序
从无序序列找到最小的数与无序序列第一个数进行交换。再从剩下的里面找到最小的数,时间花费在查找上了









R[i]=R[0]; //基准元素归位
树
#include <iostream> typedef struct node { int data; struct node* left; struct node* right; }Node; void preorder(Node* node) { if (node != NULL) { std::cout << node->data; preorder(node->left); preorder(node->right); } } void inorder(Node* node) { if (node != NULL) { inorder(node->left); std::cout << node->data; inorder(node->right); } } int main() { Node n1; Node n2; Node n3; Node n4; n1.data = 5; n2.data = 6; n3.data = 7; n4.data = 8; n1.left = &n2; n1.right = &n3; n2.left = &n4; n2.right = NULL; n2.right = NULL; n4.left = NULL; n4.right = NULL; preorder(&n1); }
浙公网安备 33010602011771号