数据结构之:常用数据结构的建立(C语言)
来源:互联网 发布:ubuntu gcc离线安装包 编辑:程序博客网 时间:2024/06/09 20:53
一、线性表的顺序存储结构
#define MaxSize 20//存储空间初始分配量typedef int ElemType;//ElemType类型根据实际情况而定,这里假设为inttypedef struct{ElemType data[MaxSize];//数组存储数据元素,最大值为MaxSizeint length;//线性表当前长度}SqList;//分号“;”不能忘记
顺序存储结构需要三个属性:1)存储空间的起始位置:数组data,它的存储位置就是存储空间的存储位置。
2)线性表的最大存储容量:数组长度MaxSize。
3)线性表的当前长度:length。
二、线性表的链式存储结构:单链表
单链表中,我们在C语言中可用结构指针来描述
typedef int Status;typedef int ElemType;//ElemType类型根据实际情况而定,这里假设为inttypedef struct Node{ElemType data;/*定义数据域*/struct Node *next;/*定义指针域*/}Node;typedef struct Node *ChainList; /* 定义链表 */
/*初始化*/Status Init(ChainList *head){ //创建头结点,并使头指针指向头结点 *head=(ChainList)malloc(sizeof(Node));/*分配空间*/ //分配存储地址失败 if (*head==NULL) return ERROR; //指针域为空 (*head)->next=NULL; return OK;}
三、二叉树
二叉链表的节点结构定义
/*二叉树的二叉链表节点结构定义*/typedef int TElemType;//ElemType类型根据实际情况而定,这里假设为inttypedef struct BiNode/*节点结构*/{TElemType data;/*节点数据*/struct BiNode *lchild, *rchild;/*左右孩子指针*/}BiTNode, *BiTree;/*二叉树的建立*//*按前序输入二叉树中的节点值(一个字符)*//*#表示空树,构造二叉链表表示二叉树T。*/void CreatBiTree(BiTree *T){TElemType ch;scanf("%c", &ch);if (ch == '#'){*T = NULL;}else{*T = (BiTree)malloc(sizeof(BiTNode));/*注意malloc()的用法*/if (!*T)exit(OVERFLOW);/*注意exit()的用法*/(*T)->data = ch;/*生成根节点*/CreatBiTree(&(*T)->lchild);/*构造左子树*/CreatBiTree(&(*T)->rchild);/*构造右子树*/}}
三、栈的顺序存储结构
栈的顺序存储结构定义:
/*栈的顺序存储结构定义*/typedef int SElemType;typedef struct{SElemType data[MaxSize];int top; /*用于存放栈顶指针*/}SqStack;进栈操作push:
/*插入元素e为新的栈顶元素*/#define ERROR 0;#define OK 1;typedef int SElemType, Status;Status Push(SqStack *S, SElemType e){if (S->top == MaxSize - 1)//栈满return ERROR;S->top++;S->data[S->top] = e;return OK;}出栈操作pop:
/*若栈非空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR*/Status Pop(SqStack *S, SElemType *e){if (S->top == -1)//栈为空return ERROR;*e = S->data[S->top];S->top--;return OK;}
阅读全文
0 0
- 数据结构之:常用数据结构的建立(C语言)
- 数据结构实验之链表六:有序链表的建立(C语言)
- C语言之数据结构
- C语言之数据结构
- 数据结构之队列的实现(c语言)
- 数据结构之c语言栈的演示
- C语言数据结构之单链表的拆分
- C语言数据结构之图的遍历
- 数据结构之栈的c语言实现
- C语言实现的数据结构之------哈希表
- 数据结构之单链表的C语言实现
- 数据结构之双链表的C语言实现
- C语言的数据结构
- C语言的数据结构
- C语言的数据结构
- 数据结构之顺序栈的操作(C语言)
- 数据结构之顺序队列的操作(C语言)
- 数据结构之冒泡排序的实现(C语言)
- hdu61272017杭电多校第七场1008Hard challenge
- POJ
- tensorflow_api_1:tf.cast( )
- 学习vue搭建网站
- Java 异步回调机制实例解析
- 数据结构之:常用数据结构的建立(C语言)
- Andrew Ng机器学习课程笔记--week10--优化梯度下降
- 第100篇博客
- 技术文章 | 阿里云前端周刊
- openstack storlet文档(五):storlet API
- 简单理解Socket
- 神经网络卷积结构及计算过程
- HDU6129-Just do it
- nginx(2) 配置站点示例