数据结构
文章平均质量分 68
秦格伍兹
这个作者很懒,什么都没留下…
展开
-
顺序存储结构线性表基本操作 纯C语言实现
自己把顺序表用C语言写了出来,并小试牛刀,做了一题,将La与Lb合并。#include #include #define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define LIST_INST_SIZE 5#define LIST原创 2012-08-03 13:56:50 · 13609 阅读 · 1 评论 -
单链表的C语言实现
今天学习了单链表,并写出了其的C语言实现,验证了一下感觉基本正确。但是代码的健壮性不够,对于有的不合法的输入,并没有显示输出错误。代码可以直接贴在编译器上编译执行,我已经写过主函数了。如有错误,欢迎指正。#include #include typedef struct LNode{ int data; LNode *next;}LNode,原创 2012-08-05 15:20:17 · 837 阅读 · 0 评论 -
头结点,头指针,首元结点的三角恋
最近在学习链表,出现了几个容易混淆的概念,分别是头结点,头指针,首元结点,他们三个到底是什么关系呢?头结点: 头结点是链表里面第一个结点,他的数据域可以不存放任何信息(有时候也会存放链表的长度等等信息),他的指针区域存放的是链表中第一个数据元素的结点(就是传说中的首元结点)存放的地址。为什么要设头结点呢?第一点,防止防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头原创 2012-08-05 09:51:53 · 6594 阅读 · 0 评论 -
顺序栈的实现C语言
没有什么要讲的。顺序栈的结构体里:头指针,尾指针,还有栈的容量。构建栈的时候,就是寻找出一片大小合适的内存空间,并用结构体里的尾指针指向这片空间。头指针开始也是指向这片空间的。压栈就是:先判断空间是否足够?不够的话,继续分配空间;够的话给头指针指向的结点赋值,并把头结点向后移一位(也就是说头指针始终指着的空间中data没有任何值)。弹栈就是:首先将头指针移回一个单位,然后将用e返回栈顶的值。原创 2012-08-16 10:31:53 · 1146 阅读 · 0 评论 -
链栈的实现
拖了很久,还是把链栈写了。链栈基本操作与顺序栈差不多,可是链栈弹出的时候,太麻烦,需要遍历整个链栈一遍,所以时间复杂度大于顺序栈的操作。#include #include #define STACK_INIT_SIZE 100#define STACKINCREAMENT 10#define OVERFLOW -1#define ERROR 0#define OK 1原创 2012-08-18 10:37:36 · 606 阅读 · 0 评论 -
顺序队列(循环队列)基本操作实现 C语言
只写了几个主要的操作,销毁,清空等没有写#include #include #define OK 1#define ERROR 0#define QUEUE_SIZE 100typedef int Status;typedef int ElemType;typedef struct Qnode{ ElemType *base; int原创 2012-08-19 13:22:17 · 5964 阅读 · 0 评论 -
链队列的C语言实现
#include #include #define ERROR 0#define OK 1typedef int Status ;typedef int ElemType;typedef struct Lnode{ ElemType data; Lnode* next;}Lnode, *Link;typedef struct queue{原创 2012-08-19 10:19:36 · 1748 阅读 · 0 评论 -
栈的应用 表达式求值
支持 + - * / ( )符号,每个数必须是0~9,输入时以#符号结尾#include #include #include #include using namespace std; int main(){ string ss; while(cin>>ss) { stack s1;原创 2012-08-15 18:47:59 · 683 阅读 · 0 评论