数据结构(1)
来源:互联网 发布:oracle sql参考手册 编辑:程序博客网 时间:2024/06/18 13:18
循环链表:
若尾节点rear->next==null,为单链表;若尾节点rear->next!=null,为循环链表;
将两个循环链表合成一个表:
P=rearA->next; //保持头结点
rearA->next=rearB->next->next;//指向B的第一个节点(不是头结点)
q=rearB->next;//保存B的头结点
rearB->next=p;//将B的终端节点连接到A的头结点
free(q);//删除B的头结点
双向链表:
双向链表的存储结构:
typedef struct DulNode
{
ElemType data;
Struct DulNode *prior;//直接前驱结点
Struct DulNode *next; // 直接后继结点
}
p->next->prior=p=p->prior->next;//结点p的后继的前驱或。。还是它自己
将储存元素e的节点S插入到p和p->next之间(顺序是s的前驱和后继,再后结点的前驱):
s->prior=p;//把p赋值给s的前驱结点
s->next=p->next;//把p->next赋值给s的后继结点
p->next->prior=s;
p->next=s;//把s赋值给p的后继结点
删除p结点:
p->prior->next=p->next;
p->next->prior=p->prior;
free(p);
栈:限定仅在表尾进行插入和删除的操作
typedef struct
{
SElemType data[MAXSIZE];
int top;//用于栈顶指针
}Sqstack;
栈的顺序储存结构:
进栈操作push:
Status Push( Sqstack *s, SElemType e)
{
If(s->top==MAXSIZE-1)
return -1; //栈满
s->top++;
s->data[s->top]=e;
return 1;
}
出栈操作pop:
Status Pop( Sqstack *s, SElemType *e)
{
if(s->top==-1)
return -1;
*e=s->data[s->top];
s->top--;
return 1;
}
两栈共享空间:
两个相同类型的栈,为它们各自开辟了数组空间,如果第一个满了,再进栈就溢出了,而另一个还有很多储存空间。数组有两个端点,两个栈有两个栈底,让一个栈的栈底为数组的末端,即下标为0处,另一个栈为数组的末端,下标为n-1处,如果增加元素,就是两端点向中间延伸。
栈1为空时,top1=-1;栈2为空时,top=n。若栈2是空栈,栈1的top=n-1,就是栈1满了。当栈1为空时,top2=0时,栈2满。两个栈见面之时,两个指针之间相差1,即top1+1==top2为栈满。
空间结构:
typedef struct
{
SElemType data[MAXSIZE];
int top1;//栈1栈顶指针
int top2;//栈2栈顶指针
}SqDoublestack;
- 数据结构学习笔记(1) 数据结构概论
- 《数据结构及应用》总结(1)------数据结构
- 数据结构(1)——大话数据结构
- JavaScript数据结构(1):什么是数据结构
- C++数据结构(1)----基本数据结构
- 数据结构(1)----单链表
- 数据结构课程设计(1)
- 数据结构数组(1)
- 数据结构学习体会(1)
- 数据结构总结(1)
- 数据结构------排序(1)
- 数据结构(1概述)
- 18,数据结构(1)
- 数据结构-概述(1)
- 数据结构笔记(1)
- 数据结构-链表(1)
- 数据结构-栈(1)
- 数据结构---数组(1)
- Codeforce 735AOstap and Grasshopper DFS
- Linux System Commands(centos)
- Ubuntu下Apache开启Rewrite模块
- 八、Linux--高级IO
- 数组指针VS指向数组的指针
- 数据结构(1)
- 【数据结构与算法】【小知识】【word】 总结
- Linux下更好用的帮助命令—cheat
- Android设计模式之访问者模式 Visitor
- 第三方网站接入秀米,实现秀米编辑的文章同步到自己的网站平台
- Android常用8种设计模式(三)
- iOS UITextView实现字数的限制以及字数的累计
- Codeforces 735B - Urbanization 贪心
- PHP配置加强