학습 노트 (1) - 상용 데이터 구조 정의:
8397 단어 데이터 구조
선형 표 {순서 표, 단일 체인 표, 정적 단일 체인 표, 양 방향 링크};
창고 {순서 창고};
대기 열 {단일 체인 대기 열, 순환 대기 열};
문자열 {긴 순서 문자열, 동적 순서 문자열, 블록 체인 문자열};
배열 {순서 배열};
희소 행렬 {3 원 그룹 순서 표, 행 논리 링크 순서 표, 십자 링크};
일반화 표 {두미 링크, 확장 선형 링크};
이 진 트 리 {순서, 체인, 단서};
나무 {부모 표시, 아이 표시, 아이 형제 표시};
그림 {인접 행렬, 인접 표, 십자 링크, 인접 다 중 표};
*********************************************************************************************************
선형 표 (순서, 동적 분배):
typedef struct {
ElemType *elem; //
int length; //
int listsize; //
}SqList;
SqList L.elem = (ElemType *)malloc(LIST_SIZE * sizeof(ElemType));
선형 표 (단일 링크):
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*Link; // Link
typedef struct{
Link head,tail;
int len;
}LinkList;
선형 표 (정적 단일 체인 표):
typedef struct{
ElemType data;
int cur; //cur , “ ”
}component,SLinkList[MAXSIZE];
선형 표 (양 방향 링크):
typedef struct DuLNode{
ElemType data;
struct DuLNode *prior;
struct DuLNode *next;
}DuLNode,*DuLinkList;
스 택 (순서):
typedef struct{
ElemType *base;
ElemType *top;
int stacksize;
}SqStack;
SqStack S.base = (ElemType *)malloc(STACK_SIZE * sizeof(ElemType));
S.top = S.base;
대기 열 (단일 체인):
typedef struct QNode{ //
ElemType data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct{
QueuePtr front; //
QueuePtr rear;
}LinkQueue;
대기 열 (순환, 순서):
typedef struct{
ElemType *base;
int front; // “ ”
int rear;
}SqQueue;
SqQueue Q.base = (ElemType *)malloc(QUEUE_SIZE * sizeof(ElemType));
문자열 (순서, 길이):
typedef unsigned char SString[MAXSTRLEN + 1]; //a.str[0] ; b.str[STRLEN] '\0'
문자열:
typedef struct{
char *ch;
int length;
}HString;
HString T.ch = (char *)malloc(i * sizeof(char));
문자열 (블록 체인):
여러 순서 표 로 구 성 된 링크...
typedef struct Chunk{
char ch[CHUNKSIZE];
struct Chunk *next;
}Chunk;
typedef struct{
Chunk *head,*tail;
int curlen; //
}LString;
배열 (순서):
typedef struct{
ElemType *base;
int dim; //
int *bounds; // ?
int *constants; // ?
}Array;
Array A.bounds = (int *)malloc(dim * sizeof(int));
A.base = (ElemType *)malloc(eletotal * sizeof(ElemType));
A.constants = (int *)malloc(dim * sizeof(int));
희소 행렬 (삼원 조 순서 표):
0 원 이 아 닌 것 만 기록...
typedef struct{
int i,j;
ElemType e;
}Triple; //
typedef struct{
Triple data[MAXSIZE + 1]; // 0
int mu,nu,tu; // , , 0
}TSMatrix;
희소 행렬 (행 논리 링크 순서 표):
typedef struct{
Triple data[MAXSIZE + 1];
int rpos[MAXRC + 1]; // 0
int mu,nu,tu;
}RLSMatrix;
희소 행렬 (십자 링크):
typedef struct OLNode{
int i,j;
ElemType e;
struct OLNode *right,*down; // /
}OLNode,*OLink;
typedef struct{
OLink *rhead,*chead; // /
int mu,nu,tu;
}CrossList;
광의 표 (머리 꼬리 링크):
typedef enum {ATOM,LIST}ElemTag;
typedef struct GLNode{
ElemTag tag;
union{
AtomType atom;
struct{struct GLNode *hp,*tp;}ptr; //ptr ,ptr.hp/ptr.tp
};
}*GList; //
일반화 표 (확장 선형 링크):
typedef enum {ATOM,LIST}ElemTag;
typedef struct GLNode{
ElemTag tag;
union{
AtomType atom;
struct GLNode *hp;
};
struct GLNode *tp; //
}*GList; //
이 진 트 리 (순서):
typedef ElemType SqBiTree[MAX_SIZE]; //
이 진 트 리 (체인 식):
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
두 갈래 나무 (단서):
잎 노드 에 사용 되 지 않 는 지침 을 후계 로...
typedef enum PointerTag{Link,Thread};
typedef struct BiThrNode{
ElemType data;
struct BiThrNode *lchild,*rchild;
PointerTag LTag,RTag;
}BiThrNode,*BiThrTree;
나무 (부모, 순서):
typedef struct PTNode{
ElemType data;
int parent;
}PTNode;
typedef struct{
PTNode nodes[MAX_SIZE];
int r,n; // ,
}PTree;
나무 (아이 링크):
typedef struct CTNode{
int child;
struct CTNode *next;
}*ChildPtr;
typedef struct{
ElemType data;
ChildPtr firstchild;
}CTBox;
typedef struct{
CTBox nodes[MAX_SIZE];
int n,r;
}CTree;
트 리 (이 진 링크):
typedef struct CSNode{
ElemType data;
struct CSNode *firstchild,*nextsibling;
}CSNode,*CSTree;
Huffman 나무:
typedef struct{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree; //
typedef char ** HuffmanCode; //
그림 (인접 행렬):
typedef enum {DG,DN,UDG,UDN}GraphKind; // , , ,
typedef struct ArcCeil{
VRType adj; //
InfoType *info;
}ArcCeil,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //
typedef struct{
VertexType vexs[MAX_VERTEX_SIZE]; //
AdjMatrix arcs;
int vexnum,arcnum; // ,
GraphKind kind;
}MGraph;
그림 (인접 표):
typedef struct ArcNode{
int adjvex; //
struct ArcNode *nextarc;
InfoType *info
}ArcNode;
typedef struct VNode{
VertexType data;
ArcNode *firstarc;
}VNode,AdjList[MAX_VERTEX_NUM]; //
typedef struct{
AdjList vertices;
int vexnum,arcnum;
int kind;
}ALGraph;
방향 그래프 (십자 링크) 가 있 습 니 다.
typedef struct ArcBox{
int tailvex,headvex; //
struct ArcBox *hlink,*tlink; // /
InfoType *info;
}ArcBox;
typedef struct VexNode{
VertexType data;
ArcBox *firstin,*firstout; // ,
}VexNode;
typedef struct{
VerNode xlist[MAX_VERTEX_SIZE];
int vexnum.arcnum;
}OLGraph;
그림 (다 중 표 인접):
십자 링크 와 거의 같은...
typedef enum {unvisited,visited}VisitIf;
typedef struct EBox{
VisitIf mark;
int ivex,jvex;
struct EBox *ilink,*jlink;
Infotype *info;
}EBox;
typedef struct VexBox{
VertexType data;
EBox *firstedge;
}VexBox;
typedef struct{
VexBox adjmulist[MAX_VERTEX_SIZE];
int vexnum,arcnum;
}AMLGraph;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.