当前位置: 首页 > news >正文

广州个人网站搭建二次元wordpress博客

广州个人网站搭建,二次元wordpress博客,php网站 更改logo,什么安装wordpress文章目录队列#xff1a;单链队列的实现及操作#xff1a;1.定义一个队列2.构造一个空队列3.销毁队列4.插入元素e到队尾5.删除队头元素#xff0c;用e返回其值单链队列操作实例及代码#xff1a;队列#xff1a; 队列是先进先出的线性表。 队列只允许在表的一端插入元素… 文章目录队列单链队列的实现及操作1.定义一个队列2.构造一个空队列3.销毁队列4.插入元素e到队尾5.删除队头元素用e返回其值单链队列操作实例及代码队列 队列是先进先出的线性表。 队列只允许在表的一端插入元素在另一端删除元素。 队列中允许插入的一端叫队尾允许删除的一端叫队头。 单链队列的实现及操作 1.定义一个队列 一个链队列由每个结点连接起来。由于插入和删除是在队头和队尾进行的我们为了方便起见直接弄两个指针指向头结点和队尾元素所在结点。 typedef struct QNode {QElemType_L data;struct QNode *next; }QNode; typedef QNode* QueuePtr; typedef struct {QueuePtr front; QueuePtr rear; }LinkQueue; 2.构造一个空队列 我们增加一个头结点首先分配一个头结点的内存空间。当队列为空时队头指针和队尾指针都指向头结点而且头结点的指针域的指针指向空意味着队列里面没有存元素。 Status InitQueue_L(LinkQueue Q) {Q.front Q.rear (QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(OVERFLOW);Q.front-next NULL;return OK; }3.销毁队列 这个销毁最终把头结点也给销毁了。 注意一点链表知道头指针就能根据-next确定后面所有结点我们初始化增加了一个尾指针让他指向最后一个结点但这并不意味着我们改变了尾指针指向的位置链表中间的结点就没了中间的结点还是可以根据头指针和-next找到的我们其实可以把尾指针理解成一个标记他的位置并不影响链表只不过方便了我们找队尾元素所在结点。真正影响链表的是我们的头指针我们遍历也是通过头指针-next来的每个结点都会用到。 这里我们就把尾指针当作一个转移变量来用了。先存头结点指向的下一个结点的位置然后把头结点的位置free掉再让头结点指向尾指针指向的位置即将下一个结点的位置当作头结点。一路循环当没有下一个存元素的结点了头指针的位置指向头结点尾指针被赋为null头指针free之后头结点的空间也没了然后把头指针也赋为null。最终头指针尾指针都指向null而且所有空间全被free掉。 void DestroyQueue_L(LinkQueue Q) {while(Q.front){Q.rear Q.front-next;free(Q.front);Q.front Q.rear; } }如果是清空的话有一点不同就是还有头结点只不过-next指向null了和初始状态一样头指针尾指针指向头结点头结点指向下一个结点的指针指向null。这里还是把尾指针当作一个转移变量初始指向第一个结点每次让头指针指向的下一个结点变成尾指针这个转移变量指向的下一个结点然后free掉尾指针原来指向的结点然后把当前尾指针指向的结点更新为尾指针这个转移变量指向的下一个结点。举个例子即可明白。 void ClearQueue_L(LinkQueue Q) {Q.rear Q.front-next;while(Q.rear){Q.front-next Q.rear-next; free(Q.rear); Q.rear Q.front-next;}Q.rear Q.front; }4.插入元素e到队尾 插入元素分配一个结点的空间然后原尾指针的下一个位置指向新结点更新尾指针。 Status EnQueue_L(LinkQueue Q, QElemType_L e) {QueuePtr p;p (QueuePtr)malloc(sizeof(QNode));if(!p)exit(OVERFLOW);p-data e;p-next NULL;Q.rear-next p;Q.rearp;return OK; } 5.删除队头元素用e返回其值 删除先判端是否有元素然后取出队头元素让头结点指针域里面的指针指向的下一个结点变成第一个元素的结点指向的下一个元素的结点。 这里我们还要考虑是否对尾指针产生影响当仅有一个元素时删除后队列为空尾指针应该指向头结点。 最后把删除的结点的空间释放掉即可。 Status DeQueue_L(LinkQueue Q, QElemType_L e) {QueuePtr p;if(Q.frontQ.rear)return ERROR;p Q.front-next;e p-data;Q.front-next p-next;if(Q.rearp)Q.rear Q.front;free(p);return OK; } 单链队列操作实例及代码 代码 #includecstdio #includecstdlib#define OK 1 #define ERROR 0 #define OVERFLOW -2 #define UNDERFLOW -3 #define TRUE 1 #define FALSE 0typedef int QElemType_L; typedef int Status;typedef struct QNode {QElemType_L data;struct QNode *next; }QNode; typedef QNode* QueuePtr; typedef struct {QueuePtr front; QueuePtr rear; }LinkQueue; Status InitQueue_L(LinkQueue Q) {Q.front Q.rear (QueuePtr)malloc(sizeof(QNode));if(!Q.front)exit(OVERFLOW);Q.front-next NULL;return OK; } void ClearQueue_L(LinkQueue Q) {Q.rear Q.front-next;while(Q.rear){Q.front-next Q.rear-next; free(Q.rear); Q.rear Q.front-next;}Q.rear Q.front; } void DestroyQueue_L(LinkQueue Q) {while(Q.front){Q.rear Q.front-next;free(Q.front);Q.front Q.rear; } } Status EnQueue_L(LinkQueue Q, QElemType_L e) {QueuePtr p;p (QueuePtr)malloc(sizeof(QNode));if(!p)exit(OVERFLOW);p-data e;p-next NULL;Q.rear-next p;Q.rearp;return OK; } Status DeQueue_L(LinkQueue Q, QElemType_L e) {QueuePtr p;if(Q.frontQ.rear)return ERROR;p Q.front-next;e p-data;Q.front-next p-next;if(Q.rearp)Q.rear Q.front;free(p);return OK; } void QueueTraverse_L(LinkQueue Q, void (Visit)(QElemType_L)) {QueuePtr p;p Q.front-next;while(p){Visit(p-data);p p-next;}printf(\n); } void PrintElem(QElemType_L e) {printf(%d , e); } Status QueueEmpty_L(LinkQueue Q) {if(Q.frontQ.rear)return TRUE;elsereturn FALSE; } int main(){LinkQueue Q;int i;QElemType_L e;printf(初始化链队 Q ...\n); InitQueue_L(Q);printf(\n);QueueEmpty_L(Q) ? printf( Q 为空\n) : printf( Q 不为空\n);printf(\n);for(i1; i6; i) {printf(元素 \%2d\ 入队, 2*i);EnQueue_L(Q, 2*i);printf(\n);}printf(\n);printf( Q 中的元素为Q ); QueueTraverse_L(Q, PrintElem);printf(\n);DeQueue_L(Q, e);printf(队头元素 \%d\ 出队...\n, e);printf( Q 中的元素为Q ); QueueTraverse_L(Q, PrintElem);printf(\n); printf(销毁 Q 前);Q.front!NULL Q.rear!NULL ? printf( Q 存在\n) : printf( Q 不存在\n);DestroyQueue_L(Q);printf(销毁 Q 后);Q.front!NULL Q.rear!NULL ? printf( Q 存在\n) : printf( Q 不存在\n);printf(\n); } 输出 初始化链队 Q … Q 为空 元素 2 入队 元素 4 入队 元素 6 入队 元素 8 入队 元素 “10” 入队 元素 “12” 入队 Q 中的元素为Q 2 4 6 8 10 12 队头元素 “2” 出队… Q 中的元素为Q 4 6 8 10 12 销毁 Q 前 Q 存在 销毁 Q 后 Q 不存在
http://www.pierceye.com/news/569958/

相关文章:

  • 企业网站用什么cms比较好平面设计在哪里学
  • 网站什么也没动怎么不收录啦wordpress边栏扩大尺寸
  • 专业的聊城网站建设成都品牌策划设计公司
  • 新开神途手游发布网站wordpress 获取分类地址
  • 网站建设亿码酷出名5万站霸屏
  • 仿制网站建设山东关键词优化联系电话
  • 律所网站建设国队男子接力赛有哪些做短租的网站
  • 常用的网站推广方法制作简历模板网站
  • c2c网站有哪些网站可以先做代码么
  • 阿里云简单网站建设wordpress+调整+行距
  • 想自己做网站推广郴州网站建设哪里比较好
  • 实用网站推荐小程序权限超时
  • 济源市建设工程管理处网站wordpress模板搜索功能404
  • 成都三网合一网站建设网站广告收费标准
  • 网站制作咨询电话网站托管费用多少
  • 做网站 需求怎么写成都优化网站源头厂家
  • 我买了一个备案网站 可是公司注销了学服装设计的就业方向
  • 网站后台上传不了图片请人做网站需要注意什么条件
  • 建网站哪家好案例网页设计感悟与体会
  • 做网站要实名吗深圳货拉拉
  • 综合门户网站是什么意思建设机械网站
  • 主题资源网站建设作业高级网站开发工程师考试题
  • 含山建设局网站免费的个人简历模板文档
  • 门户网站建设推荐高校英文网站建设 文献综述
  • 织梦网站备案免费咨询网站
  • wordpress站内搜索插件网站管理程序
  • 网站建设友链交换自己电脑做网站iis
  • 全球优秀企业网站做原型的素材网站
  • 单页面营销网站怎么用polylang做网站
  • 网站开发入那个科目中国网站建设哪家公司好