各种数据结构的存储结构描述
来源:互联网 发布:淘宝宝贝怎么设置套餐 编辑:程序博客网 时间:2024/05/21 06:24
1.线性表的顺序存储结构
#define ListSize 100
typedef struct
{
DataType List[ListSize];
int length;
}SeqList;
顺序表的基本运算:
void InitList(SeqList *L);
int ListEmpty(SeqList L);
int GetElem(SeqList L,int i,DataType *e);
int LocateElem(SeqList L, DataType e);
int InsertList(SeqList *L, int i, DataType e);
int DeleteList(SeqList *L, int i, DataType *e);
int ListLength(SeqList L);
void ClearList(SeqList *L);
2.单链表的存储结构
typedef struct Node
{
DataType data;
struct Node *next;
}ListNode, *LinkList;
单链表的基本运算:
void InitList(LinkList *head);
int ListEmpty(LinkList head);
ListNode *Get(LinkList head, int i);
ListNode *LocateElem(LinkList head, DataType e);
int LocatePos(LinkList head, DataType e);
int InsertList(LInkList head, int i ,DateType e);
int DeleteList(LinkList head, int i, DataType *e);
int ListLength(LinkList head);
void DestroyList(LinkList head);
3.循环单链表的存储结构
typedef struct Node
{
DataType data;
struct Node *next;
}ListNode, *LinkList;
4.双向链表的存储结构
typedef struct Node
{
DataType data;
struct Node *prior;
struct Node *next;
}DListNode, *DLinkList;
5.静态链表的存储结构
typedef int PtrToNode;
typedef PtrToNode List; /*定义链表,其实和下面的节点是同一个结构指针,只是该指针永远指向表头*/
typedef PtrToNode Position; /*定义链表的节点*/
typedef int ElementType; /*定义存储的数据类型,为方便,这里是int 型,您可以使用别的数据类型,而只要在这里做一修改,比如将int 改为char */
#define SpaceSize 100
/* 链表节点的结构定义*/
struct Node
{
ElementType Element;
Position Next;
};
struct Node CursorSpace[ SpaceSize ]; /*结构数组来存储数据*/
静态链表的运算
/*下面的函数在后面的代码中介绍*/
void InitializeCursorSpace( void );
List MakeEmpty( List L );
int IsEmpty( const List L );
int IsLast( const Position P, const List L );
Position Find( ElementType X, const List L );
void Delete( ElementType X, List L );
Position FindPrevious( ElementType X, const List L );
void Insert( ElementType X, List L, Position P );
void DeleteList( List L );
void print(List L);
Position CursorAlloc(void);
void CursorFree(Position P);
6.多项式节点结构
typedef struct polyn
{
float coef;
int expn;
struct polyn *next;
}PloyNode, *PLinkList;
7.栈的顺序存储结构
#define StackSize 100
typedef struct
{
DataType stack[StackSize];
int top;
}SeqStack;
顺序栈的基本运算
void InitStack(SeqStack *S);
int StackEmpty(SeqStack S);
int GetTop(SeqStack S, DataType *e);
int PushStack(SeqStack *S, DataType e);
int PopStack(SeqStack *S , DataType *e);
int StackLength(SeqStack S);
void ClearStack(SeqStack *S);
8.两个共享栈的数据结构定义
typedef struct
{
DataType stack[StackSize];
int top[2];
}SSeqStack;
9.链栈的数据结构定义
typedef struct node
{
DataType data;
struct node *next;
}LStackNode, *LinkStack;
链栈的基本运算
void InitStack(LinkStack *top);
int StackEmpty(LinkStack top);
int PushStack(LinkStack top, DataType e);
int PopStack(LinkStack top, DataType *e);
void GetTop(LinkStack top, DataType *e);
int StackLength(LinkStack top);
void DestroyStack(LinkStack top);
10.顺序队列的定义
#define QueueSize 40
typedef struct Squeue
{
DataType queue[QueueSize];
int front,rear;
}SeqQueue;
顺序队列的基本运算
void InitQueue(SeqQueue *SQ);
int QueueEmpty(SeqQueue SQ);
int EnterQueue(SeqQueue *SQ, DataType x);
int DeleteQueue(SeqQueue *SQ, DataType *e);
11.顺序循环队列
typedef struct Squeue
{
DataType queue[QueueSize];
int front, rear;
int tag;
}SCQueue;
12.队列的链式存储结构
typedef struct QNode
{
DataType data;
struct QNode *next
}LQNode, *QueuePtr;
typedef struct
{
QueuePtr front;
QueuePtr rear;
}LinkQueue;
链式队列的基本运算
void InitQueue(LinkQueue *LQ);
int QueueEmpty(LinkQueue LQ);
int EnterQueue(LinkQueue *LQ, DataType e);
int DeleteQueue(LinkQueue *e, DataType *e);
int GetHead(LinkQueue LQ, DataType *e);
void ClearQueue(LinkQueue *LQ);
13.双端队列
typedef struct DQueue
{
DataType queue[QueueSize];
int end1,end2;
}DQueue;
14.串的顺序存储结构
typedef struct
{
char str[MaxLength];
int length;
}SeqString;
15. 堆串的数据结构定义
typedef struct
{
char *str;
int length;
}HeapString;
16.串的链式存储结构
#define ChunkSize 10
typedef strcut Chunk
{
char ch[ChunkSize];
struct Chunk * next;
}Chunk;
typedef struct
{
Chunk *head;
Chunk *tail;
int length;
}LinkString;
17.二叉树的链式存储结构
typedef struct Node
{
DataType data;
struct Node *lchild;
struct Node *rchild;
}*BiTree, BitNode;
- 各种数据结构的存储结构描述
- 数据结构(java语言描述)-- 二叉查找树的链式存储结构的实现
- 数据结构与算法(Java描述)-11、串的基本概念以及串存储结构
- 数据结构---->图的存储结构
- 数据结构的链式存储结构
- 数据结构 - 图的存储结构
- 数据结构-树的存储结构
- 数据结构:串的存储结构
- 数据结构---图的存储结构
- 数据结构的顺序存储结构
- 数据结构的链式存储结构
- 【数据结构】图的存储结构
- 数据结构 栈的顺序存储结构
- 【数据结构】线性表的顺序存储结构
- 【数据结构】线性表的链式存储结构
- 数据结构三栈的顺序存储结构
- 数据结构四栈的链式存储结构
- 数据结构:栈的顺序存储结构
- Binary Indexed Tree 2D
- 你知道周几汇报工作最合适吗?
- Hello world!
- hdu 4300 Clairewd’s message(详解,扩展KMP)
- 大神F1刷机
- 各种数据结构的存储结构描述
- android,手机防盗笔记。手机imsi,sms。
- 职场分享:在职场中我们需要哪些工作技巧
- poj2752 Seek the Name, Seek the Fame(next数组的运用)
- 在新公司的两个月
- uva live 6479
- 你知道C/S和B/S两种架构有什么区别吗?
- linux 重启服务命令
- PHP在代码中屏蔽错误和警告