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

做网站国外访问开发一个网站的步骤流程

做网站国外访问,开发一个网站的步骤流程,网站空间支付方式,石家庄专业模板网站制作价格1.题目 2.思路一(数组) 通过数组进行模拟,通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中,设置一个队首head和队尾tail,数组的大小固定为k。 初步分析:存在缺陷 改善假溢出问题&#…

1.题目 

2.思路一(数组)

通过数组进行模拟,通过操作数组的索引构建一个虚拟的首尾相连的环。再循环队列结构中,设置一个队首head和队尾tail,数组的大小固定为k。

初步分析:存在缺陷

改善假溢出问题:

(1) 用size记录数组长度

(2) 多开辟一块空间

 这里,我们选择方案二解决:

 我们对取尾进行分析:

3参考代码(数组解决)

typedef struct {int* a;int head;//头下标int tail;//尾的下一个的下标int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));//多开一个空间解决假溢出问题obj->a = malloc(sizeof(int)*(k +1));obj->head = obj->tail = 0;obj->k = k;return obj;
}//判空
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->head == obj->tail;
}
//判满
bool myCircularQueueIsFull(MyCircularQueue* obj) {//模(K+1)解决回绕的问题return (obj->tail + 1)%(obj->k + 1) == obj->head;
} //入队列
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;//没满obj->a[obj->tail] = value;obj->tail++;//解决回绕的问题obj->tail %= (obj->k + 1);return true;
}
//出队列
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;else{++obj->head;//解决回绕问题obj->head %= (obj->k + 1);return true;}
}
//取头
int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[obj->head];
}
//取尾
int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;else{//1//return obj->tail == 0 ? obj->a[obj->k] : obj->a[obj->tail - 1];     //2//return obj->a[((obj->tail -1) +(obj->k + 1))%(obj->k + 1)]//简化后return obj->a[(obj->tail + obj->k )%(obj->k + 1)];}}void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}

 4.思路二(链表)

 用单链表实现队列较为简单,入队列时,将新的元素尾插插入到链表的尾部;出队列时,将链表的都节点返回,并将头指针指向下一个节点。

创建循环队列

head:链表的头结点,队列的头结点

tail:链表的尾节点,队列的尾节点

capacity:队列的容量

size:队列当前元素的数量

//创建循环队列
typedef struct {struct ListNode* head;//队列头节点struct ListNode* tail;//队列尾节点int capacity;//队列容量int size;//队列当前元素数量
} MyCircularQueue;

5.参考代码(链表解决)

//创建循环队列
typedef struct {struct ListNode* head;//队列头节点struct ListNode* tail;//队列尾节点int capacity;//队列容量int size;//队列当前元素数量
} MyCircularQueue;//初始化
MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj->capacity = k;obj->size = 0;obj->head = obj->tail = NULL;return obj;
}
//入队列
bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(obj->capacity == obj->size)return false;//创建新节点struct ListNode* newnode = (struct ListNode*)malloc(sizeof(struct ListNode));newnode->val = value;newnode->next = NULL;if(!obj->head)//空链表{obj->head = obj->tail = newnode;}else//非空链表,尾插{obj->tail->next = newnode;obj->tail = newnode;}obj->size++;return true;
}
//出队列(先入先出)
bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(obj->size == 0)return false;struct ListNode* node = obj->head;obj->head = obj->head->next;obj->size--;free(node);return true;
}
//返回队首元素
int myCircularQueueFront(MyCircularQueue* obj) {if(obj->size == 0)return -1;return obj->head->val;
}
//返回队尾元素
int myCircularQueueRear(MyCircularQueue* obj) {if(obj->size == 0)return -1;return obj->tail->val;
}
//判空
bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->size == 0;
}
//判满
bool myCircularQueueIsFull(MyCircularQueue* obj) {return obj->size == obj->capacity;
}
//销毁队列
void myCircularQueueFree(MyCircularQueue* obj) {//一次销毁节点for(struct ListNode* cur = obj->head;cur;){struct ListNode* node = cur;cur = cur->next;   free(node);}free(obj);
}
http://www.dt0577.cn/news/53989.html

相关文章:

  • 小软件制作教程疫情优化调整
  • 政府补贴企业做网站怎样建立一个网络销售平台
  • 网站建设丨金手指谷哥14seo自学网
  • 设计师常上的网站网络安全有名的培训学校
  • 台州做网站免费建站系统
  • WordPress众筹网站主题媒体代发布
  • 怎么查看网站的空间商代写
  • 交易平台网站怎么做软文推广例子
  • 多多鱼网页模板惠州百度seo在哪
  • 沈阳室内设计公司优化快速排名教程
  • 武汉网站关键词长沙seo男团
  • 国外网站开发公司it培训机构排名前十
  • 东莞网站建设哪家好百度账户登录
  • 怎样在赶集微网站做微招聘营销策划机构
  • 西安昆奇网站建设线上渠道推广怎么做
  • 什么网站可以做调查今天的病毒感染情况
  • 郑州网站建设设计公司哪家好推广广告赚钱软件
  • 做外贸没有网站需要59软文网
  • 扬州做网站的网络公司淘宝关键词优化推广排名
  • 交友网站去哪里做千网推软文推广平台
  • 最稳定的免费的资源共享网站网页模板网站
  • 广安哪里做网站seo数据优化教程
  • 济南自适应网站建设全网营销整合营销
  • 怎么样将网站内容做的漂亮全国各城市疫情高峰感染进度
  • dw是做静态网站还是动态的自己怎么做一个网页
  • 潮州+网站建设国外网站排行
  • 做调查问卷赚钱的网站中文搜索引擎排名
  • 杭州城乡建设委员会的网站网络推广与网络营销的区别
  • 做彩票网站服务器app下载
  • 用ps如何做短视频网站常用网站推广方法及资源