c语言怎么理解线性表,数据结构(C语言) 理解记忆篇

忘了就来看看。。。

1、线性表:

(1)

线性表

静态分配的顺序表、动态分配的顺序表

单链表、双链表

循环单链表、循环双链表

静态链表

头指针、尾指针、头节点

LinkList L;      InitList(&L);      DestroyList(L);

(2)

typedef structSqList {int data[50];intlength;

}SqList;

typedef structSqList {int*data;intmaxSize;intlength;

}SqList;

typedef structNode {intdata;struct Node*next;

}Node,*LinkList;

typedef structNode {intdata;struct Node* prior, *next;

}Node,*LinkList;

typedef structNode {intdata;intnext;

}LinkList[50];

2、栈

顺序栈、共享栈、链式栈、卡特兰数

typedef structSqStack {int data[50];int top; //-1

}SqStack;

typedef structSharedStack {int data[50];int top1; //-1

int top2; //50

}SharedStack;

typedef structNode {intdata;struct Node*next;

}Node,*LinkStack;

卡特兰数:h(n)=C(2n,n)/(n+1),等于n个元素依次进栈的出站序列的个数。

3、队列

队列、输出受限的双端队列、输入受限的双端队列

循环队列,链式队列

typedef structSqQueue {int data[50];intfront;intrear;

}SqQueue;

typedef structNode {intdata;struct Node*next;

}Node;

typedefstructLinkQueue {

Node* front, *rear;

}LinkQueue;

4、矩阵

特殊矩阵、对称矩阵、三角矩阵、三对角矩阵、

稀疏矩阵、三元组顺序表、十字链表、邻接表、伪地址表示法

typedef structTriple {inti;intj;inte;

}Triple;

typedefstructSMatrix {

Triple data[50];intmu, nu, tu;

}SMatrix;

typedef structNode {inti, j;inte;struct Node* right, *down;

}Node;

typedefstruct{

Node** rhead, **chead;intmu, nu, tu;

}CrossList;

typedef structNode {intj;inte;struct Node*right;

}Node;

typedefstruct{

Node**rhead;intmu, nu, tu;

};

typedef structPair {intloc;inte;

}Pair;

typedefstruct{

Pair* data[50];intmu, tu, nu;

}Matrix;

5、栈的应用

(1)表达式

中缀表达式:把运算符作为中缀,比如:1+2

前缀表达式:把运算符作为前缀,比如:+12

后缀表达式:把运算符作为后缀,比如:12+

复杂的,比如2*(1+3)        *2+13             213+*

6、二叉树

二叉树、完全二叉树、满二叉树

顺序存储二叉树、二叉链表、三叉链表、线索二叉树、先序线索二叉树、中序线索二叉树、后序线索二叉树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值