数据结构
四阿哥漫步后花园
只有靠自己才靠得住!
展开
-
链表归并代码
void mergelist(list La,list Lb,list &Lc){ //已知线性表LA和LB中的数据元素按值非递减排列 //归并LA和LB得到新的线性表LC,LC中的元素也按值非递减 Initlist(Lc);//初始化一个新的链表LC i=j=1;k=0; La_len=ListLength(La);//分别求出La和Lb的长度 Lb_len=ListLength原创 2015-01-27 15:46:08 · 970 阅读 · 0 评论 -
压栈出栈遍历栈实例代码
#include#include#includetypedef struct Node//定义一个链表结构体{ int data; struct Node* pNext;}NODE,*PNODE;typedef struct Stack//定义一个栈结构体{ PNODE pTop; PNODE pBottom;}STACK,*PSTACK;void initStac原创 2015-01-01 17:43:13 · 2058 阅读 · 0 评论 -
链表的创建和遍历
#include#include#includetypedef struct Node{ int date;//数据域 struct Node* pNext;//指针域}NODE,*PNODE;//函数声明;PNODE create_list(void);void travel_list(PNODE pHead);int main(){ PNODE pHead=NU原创 2014-12-31 17:05:57 · 1112 阅读 · 1 评论 -
单链表,双链表,循环链表的区别
单向链表(单链表) 单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向表中的下一个节点,而最后一个节点则 指向一个空值NULL。单向链表只可向一个方向遍历。查找一个节点的时候需要从第一个节点开始每次访问下一个节点,一直访问到需要的位置。也可以提前把一个节点的位置另外保存起来,然后直接访问。双向链表,(双链表) 双向链表中不原创 2014-12-28 19:22:57 · 9599 阅读 · 0 评论 -
串操作算法虚拟实现
//串:它是有限字符集中的零个或多个字符组成的有限序列//一种特殊的线性表int indexz(String S,String T,int pos){ //T为非空串,若主串S中第pos个字符之后存在与T相等 //的子串,则返回第一个这样的子串在S中的位置 if(pos>0) { n=StrLength(S);//求出主字符串的长度 m=StrLength(T);//求出非原创 2015-02-02 12:28:16 · 1071 阅读 · 0 评论 -
栈的链式存储结构
//1.初始化:(有头结点的情况下)S=(LStack*)malloc(sizeof(LStack));//为栈开辟内存空间S.next=NULL;//把栈置为空//2.入栈p=(LStack*)malloc(sizeof(Lstack));//给入栈的元素分配内存空间p->data=e;//把元素e插入栈内p->next=S->next;//使得e成为了栈顶元素S->next=p;原创 2015-01-30 19:05:15 · 1095 阅读 · 0 评论 -
循环列队的循序结构
//1.队列顺序结构的定义#define MAXQSIZE 100typedef struct { QElemType base[MAXQSIZE];//静态数组 int front;//队列头指针 int rear;//队列尾指针}SqQueue;//解决队列的假溢出方法//1.将循序列队臆造为一个环状空间。尾指针指向头指针//2.在对满的情况下,rear指针和front原创 2015-01-31 17:05:53 · 1213 阅读 · 0 评论 -
栈的顺序存储结构
#define STACK_INIT_SIZE 100;//定义栈的初始化存储空间#define STACKINCREMENT 10;//定义栈的追加存储空间的大小typedef struct { SElemType *base;//栈尾元素,在栈构造之前和销毁以后,base=NULL SElemType *top;//栈顶指针 int stacksize;//栈的长度};SqSta原创 2015-01-30 12:04:22 · 1195 阅读 · 0 评论 -
归并排序
和分治思想的第一次相遇当问题的规模是可以划分的时候,分治的算法往往是很有效的:不断分割问题的规模,直到子问题的规模足够小便直接求解,之后不断整合子问题的解得到更大规模的解,最后得到完整解。归并排序就是分治算法的一个简单的例子。可能有人觉得快速排序也是属于分治算法,但我不这么认为,因为快速排序是先得到大问题的解的一部分,再靠子问题来完成解,并没有整合子问题这一步,所以硬要说的转载 2015-01-10 21:38:43 · 991 阅读 · 0 评论 -
二叉树前中后序遍历代码实现
二叉树的递归遍历实现起来比较简单,而且代码简洁;而非递归遍历则不那么简单,我们需要借助另一种数据结构---栈来实现。二叉树的遍历又可以分为前序、中序和后序三种,它们是按照根结点在遍历时的位置划分的,前序遍历则根结点先被遍历,中序则根结点在左右叶子节点之间被遍历,后序则是根结点最后被遍历。三种非递归遍历中,前序和中序都不是太复杂,而后序遍历则相对较难。一、前序遍历转载 2015-01-10 21:36:23 · 2961 阅读 · 0 评论 -
单链表的建立和增删改查代码及讲解
//---单链表的单链式存储结构----typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;//1.初始化int Initlist(LinkList L){ L=NULL; return OK;}//初始化(带头结点)int Initlist(LinkList L){ L原创 2015-01-29 11:55:40 · 2629 阅读 · 0 评论 -
线性表的顺序存储伪算法代码和讲解
#define LIST_INIT_SIZE 100//线性表存储空间的初始分配量#define LISTINCREMENT 10//线性表存储空间的分配增量typedef struct { Elemtype *elem;//存储空间基址 int length;//当前长度 int listsize;//当前分配存储容量(以sizeof(elemtype))}Sqlist;//原创 2015-01-28 14:35:49 · 1865 阅读 · 0 评论 -
链表的基本操作之_增删改查
*****end*******原创 2015-04-20 19:28:13 · 3270 阅读 · 0 评论