====================》==========顺序==========》====================》
Status insertList(SqList *L,int i,int data){
int k;
//判断L的长度不要超过maxsize
if (L->length == MAXSIZE){
return ERROR;
}
if (i<1 || i>L->length +1) {
return ERROR;
}
if (i <= L->length){
for (k = L->length-1;k>i-1; k--) {
L->data[k+1] = L->data[k];
}
}
L->data[i-1] = data;
L->length ++;
return OK;
}
//删除L的第i个数据元素
Status deleteList (SqList* L,int i,int *data){
int k;
if (L->length == 0) {
return ERROR;
}
if (i < 1 ||i > L->length) {
return ERROR;
}
*data = L->data[i-1];
if (i <= L->length) {
for (k = i; k < L->length;k++) {
L->data[k-1] = L->data[k];
}
}
return OK;
}
====================》========栈顺序============》====================》
/* 插入元素e为新的栈顶元素 */
Status Push(SqStack *S,SElemType e){
if (S->top == MAXSIZE -1) {
return ERROR;
}
S->top++;
printf("%d",S->top);
S->data[S->top] = e;
return OK;
}
/* 若栈不空,则删除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;
}
====================》=========队列顺序==========》====================》
/* 若队列未满,则插入元素e为Q新的队尾元素 */
Status EnQueue(SqQueue *Q,QElemType e)
{
if ((Q->rear+1)%MAXSIZE == Q->front) /* 队列满的判断 */
return ERROR;
Q->data[Q->rear]=e; /* 将元素e赋值给队尾 */
Q->rear=(Q->rear+1)%MAXSIZE;/* rear指针向后移一位置, */
/* 若到最后则转到数组头部 */
return OK;
}
/* 若队列不空,则删除Q中队头元素,用e返回其值 */
Status DeQueue(SqQueue *Q,QElemType *e)
{
if (Q->front == Q->rear) /* 队列空的判断 */
return ERROR;
*e=Q->data[Q->front]; /* 将队头元素赋值给e */
Q->front=(Q->front+1)%MAXSIZE; /* front指针向后移一位置, */
/* 若到最后则转到数组头部 */
return OK;
}
28.顺序线性表-顺序栈-顺序队列
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、数据结构之顺序表总结 1、定长顺序表 头文件sqlist.h 实现头文件函数的文件:sqlist.cpp ex...
- 1.线性表 线性表可以执行如下操作: 从线性表中提取一个元素。 向线性表插入一个元素。 从线性表删除一个元素。 找...
- java框架支持两种类型的容器: 为了存储一个元素集合,简称合集 为了存储键/值对,称为映射表 1.集合 Set用...