摘要:链队列typedef struct QNode{ QElemType data; struct QNode *next;}QNode,* QueuePtr;typedef struct { QueuePtr front;//队头指针 QueuePtr rear;//队尾指针} LinkQueue;1.构造空队列Status InitQueue(LinkQueue &Q){ Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); //存储分配失败 Q.front->next=NULL;
阅读全文
摘要:定义栈的结构体typedef struct { SElemType * base;//怎么base会关键字显示 SElemType * top; int stacksize;}SqStack;1.初始化一个空栈SStatus InitStack(SqStack & S){ S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType)); if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACK_INIT_S...
阅读全文
摘要:1.单链表查找Status GetElem_L(LinkList L,int i,ElemType &e){ //L是带头结点的单链表的头指针 p=L->next; //初始化,p指向第一个结点 j=1; //j为计数器 while(p&&jnext; ++j; } if(!p||j>i) return ERROR; //返回错误 e=p->data; //取第i个元素 return OK;}2.向单链表中插入一个数据Status ListInsert_L...
阅读全文
摘要:1.向当前线性表插入数据Status ListInsert_Sq(SqList &L,int i,ElemType e){if(iL.length+1)return ERROR; //i不合格if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType)); //重新分配存储空间if(!newbase)exit(OVERFLOW); //如果分配空间失败L.elem=newbase; //新基址L.listsize+=LI...
阅读全文