如何创建一个全面且高效的WordPress网站?

摘要:如何设计一个完整的网站,wordpress 教程,辽宁建设厅新网站,北京公司网站建一、个人理解链栈相较于顺序栈不存在上溢(数据满)的情况,除非内存不足
如何设计一个完整的网站,wordpress 教程,辽宁建设厅新网站,北京公司网站建一、个人理解链栈相较于顺序栈不存在上溢#xff08;数据满#xff09;的情况#xff0c;除非内存不足#xff0c;但存储密度会低于顺序栈#xff0c;因为会多存一个指针域#xff0c;其他逻辑和顺序表一致。总结如下#xff1a;头指针指向栈顶。链栈没有头节点直接就是…一、个人理解链栈相较于顺序栈不存在上溢数据满的情况除非内存不足但存储密度会低于顺序栈因为会多存一个指针域其他逻辑和顺序表一致。总结如下头指针指向栈顶。链栈没有头节点直接就是首元节点。基本不会出现上溢的情况。头指针为空表示链栈为空没有元素。插入删除操作都是在栈顶首元节点操作。二、链栈图解三、结构体定义1、ElemType1说明数据域存放自定义数据。2源码typedef struct ElemType {char StudentNum[StudentNumLen];char StudentName[StudentNameLen];int StudentScore; }ElemType;2、Stack1说明链栈的数据域和指针域。2源码typedef struct Stack {ElemType Data;struct Stack* NextPointer; }Stack;3、LinkStack1说明多加了一个StackLen是为了提升计算链栈长度的效率因为链栈不能像顺序栈一样用栈顶指针减去栈底指针得到栈长度而是需要遍历整个链栈得到栈长度时间复杂度为O(n)所以多加了一个参数StackLen使得时间复杂度变为O(1)。2源码typedef struct LinkStack {Stack* StackTop;StackLenType StackLen; }LinkStack;四、函数定义1、InitLinkStack1用途初始化链栈头节点置为NULL表示栈为空后续入栈时再申请空间。2源码Status InitLinkStack(LinkStack* LS) {JudgeAllNullPointer(LS);LS-StackTop NULL;LS-StackLen 0;Log(Init LinkStack : OK\n,Info);return SuccessFlag; }3参数参数名说明LS需要初始化的LinkStack*类型链栈。2、JudgeLinkStackIsEmpty1用途判断链栈是否为空如果头指针为空则链栈为空反之非空。2源码Status JudgeLinkStackIsEmpty(LinkStack* LS) {JudgeAllNullPointer(LS);if(LS-StackTop NULL){Log(Judge LinkStack: Empty\n,Debug);return SuccessFlag;}Log(Judge LinkStack: Not Empty\n,Debug);return FailFlag; }3参数参数名说明LS需要判断是否为空的LinkStack*类型链栈。3、GetLinkStackLen1用途获取链栈的长度。2源码StackLenType GetLinkStackLen(LinkStack* LS) {JudgeAllNullPointer(LS);return LS-StackLen; }3参数参数名说明LS需要获取长度的LinkStack*类型链栈。4、PushLinkStack1用途压栈将数据放入链栈中。2源码Status PushLinkStack(LinkStack* LS, ElemType E) {JudgeAllNullPointer(LS);Stack* NewStack (Stack*)MyMalloc(sizeof(Stack));NewStack-Data E;NewStack-NextPointer LS-StackTop;LS-StackTop NewStack;LS-StackLen;Log(Push LinkStack : OK\n,Info);return SuccessFlag; }3参数参数名说明LS需要压栈的LinkStack*类型链栈。E需要压栈的ElemType类型数据。5、GetLinkStackTop1用途获取栈顶元素数据域返回一个ElemType类型数据。
阅读全文