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

seo整站优化外包哪家好北京seo外包 靠谱

seo整站优化外包哪家好,北京seo外包 靠谱,阿里巴巴的网站二维码怎么做,中国企业报栈和队列和顺序表应用算法练习 1.栈1.1概念与结构1.2栈的实现 2.队列2.1概念与结构2.2队列的实现 3.附(顺序表应用算法)3.1移除元素3.2删除有序数组中的重复项3.3合并两个有序数组 1.栈 1.1概念与结构 栈:⼀种特殊的线性表,其只…

栈和队列和顺序表应用算法练习

  • 1.栈
    • 1.1概念与结构
    • 1.2栈的实现
  • 2.队列
    • 2.1概念与结构
    • 2.2队列的实现
  • 3.附(顺序表应用算法)
    • 3.1移除元素
    • 3.2删除有序数组中的重复项
    • 3.3合并两个有序数组

1.栈

1.1概念与结构

:⼀种特殊的线性表,其只允许在固定的⼀端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出的原则。
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。
出栈:栈的删除操作叫做出栈,出数据也在栈顶。

1.2栈的实现

typedef int STDataType;
typedef struct Stack
{STDataType * a;int top;int capacity;
}ST;
// 初始化栈
void STInit(ST* ps);
// 销毁栈
void STDestroy(ST* ps);
// ⼊栈
void STPush(ST* ps, STDataType x);
//出栈
void STPop(ST* ps);
//取栈顶元素
STDataType STTop(ST* ps);
//获取栈中有效元素个数
int STSize(ST* ps);
//栈是否为空
bool STEmpty(ST* ps);

2.队列

2.1概念与结构

概念:只允许在⼀端进行插入数据操作,在另⼀端进行删除数据操作的特殊线性表,队列具有先进先出。
入队列:进行插⼊操作的⼀端称为队尾。
出队列:进行删除操作的⼀端称为队头。

2.2队列的实现

typedef int QDataType;
//队列结点结构
typedef struct QueueNode
{int val;struct QueueNode* next;
}QNode;
//队列结构
typedef struct Queue
{QNode* phead;QNode* ptail;int size;
}Queue;
//初始化队列
void QueueInit(Queue* pq);
//销毁队列
void QueueDestroy(Queue* pq);
// ⼊队列,队尾
void QueuePush(Queue* pq, QDataType x);
// 出队列,队头
void QueuePop(Queue* pq);
//取队头数据
QDataType QueueFront(Queue* pq);
//取队尾数据
QDataType QueueBack(Queue* pq);
//队列判空
bool QueueEmpty(Queue* pq);
//队列有效元素个数
int QueueSize(Queue* pq);

3.附(顺序表应用算法)

3.1移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。
假设 nums 中不等于 val 的元素数量为 k

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k
int removeElement(int* nums, int numsSize, int val)
{int dst = 0, src = 0;while (src < numsSize){if (nums[src] != val){nums[dst] = nums[src];dst++;}src++;}return dst;
}

3.2删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k
int removeDuplicates(int* nums, int numsSize) 
{int dst = 0, src = dst + 1;while (src < numsSize){if (nums[src]!=nums[dst] && ++dst != src){nums[dst] = nums[src];}++src;}return dst + 1;
}

3.3合并两个有序数组

给你两个按非递减顺序 排列的整数数组 nums1nums2,另有两个整数 mn ,分别表示 nums1nums2 中的元素数目。
请你 合并 nums2nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {int l1 = m - 1;int l2 = n - 1;int l3 = m + n - 1;while (l1 >= 0 && l2 >= 0){if (nums1[l1] > nums2[l2]){nums1[l3--] = nums1[l1--];}else{nums1[l3--] = nums2[l2--];}while (l2 > 0){nums1[l3--] = nums2[l2--];}}
}
http://www.dtcms.com/wzjs/468292.html

相关文章:

  • 帮做装修设计的网站手机关键词排名优化
  • wordpress漂浮花瓣高明搜索seo
  • wordpress 引用页面百度的seo关键词优化怎么弄
  • 网站名词排名怎么做最近新闻摘抄50字
  • 国内外网站在线发外链工具
  • 桂林北站到桂林站多远镇江网站建设
  • 山东胜越石化工程建设有限公司网站电脑编程培训学校哪家好
  • 建设网站青岛手机网页制作
  • 目录网站做外链企业营销策划是做什么的
  • 网站建设模板制作郑州seo外包费用
  • 大型网站运营步骤郑州网站优化排名
  • 学做分类网站百度指数什么意思
  • 一级a做爰片无码网站打开网址跳转到国外网站
  • 成都新线加网站建设浙江疫情最新消息
  • 个人博客模板 wordpress英文谷歌seo
  • 织梦系统 子网站站长工具怎么关掉
  • 做网赌网站怎么推广拉人杭州seo运营
  • 专业网站建设模板数据分析系统
  • 论文网站网站推广联盟
  • 惠州哪家做网站好济南seo排名优化推广
  • 升腾d9116 做网站搜索引擎在线
  • 做web网站原型设计软件个人如何注册网站
  • 淘宝网站可信度状况及建设策略百度q3财报减亏170亿
  • 合肥找工作最新招聘信息seo哪里有培训
  • 阿里妈妈推广网站百度的合作网站有哪些
  • 服务器添加网站地推接单平台找推网
  • 交易网站开发文档电话投放小网站
  • HTML可以做彩票网站吗昆明百度搜索排名优化
  • 自己做的网站显示iis7什么软件可以推广
  • 网站怎样制作图文排版软文发布