当前位置:首页 » 编程软件 » 编程中哨兵

编程中哨兵

发布时间: 2022-02-15 18:36:49

Ⅰ 跪求!!关于c语言编程问题!急~

/*
题目:《设计实现一个班级信息管理系统》
要求:
合理运用C语言的数组,指针,结构体以及文件操作等,实现一个模拟的班级通讯录管理系统。
该系统用来管理学生的基本信息,通信信息。具体的要如下:
1) 工作人员可以通过此程序来管理学生的信息,包括查询,添加,修改,删除等功能。
2) 在进行添加时,系统会自动监测所添加的学生信息是否已经存在,如果存在,会提示用户,
该学生已经存在。
3) 在删除时,要首先弹出对话框,让用户确认是否删除。只有经过确认才能够被删除。
4) 在进行学生信息管理时,不准用户修改学号。
5) 通过键盘或读取文件的方法读取学生的信息。
6) 能够运用结构化程序设计的选择和循环结构,并熟练使用相关的语句(如 do while,for,if-else,if等)。
7) 程序要有主菜单,能够完成主要的功能。
[附1]
有关学生的信息,包括,学号,姓名,性别,年龄,电话。
[附2]
我是大一的新生,现在C的内容还没有完全学完,关于枚举,链表,文件操作等还未学,所以请各位高手在帮小弟时多加一点提示,不然我可能看不懂```
还有,关于第(4)个要求和第(7)个要求,可以忽略```
*/
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>

typedef struct Student//学生信息
{
signed short id;
char name[11];
char sex[7];
signed short age;
char telNum[16];
}Student;

typedef struct Node
{
Student data;
Node* next;
}Node;

static Node* begin=NULL;//哨兵结点
static signed short len=0;//链表长度

void printMenu();//打印菜单
void printBye();//打印结束语
void printList();//打印所有学生信息
void printStudent(Student st);//打印学生信息
Node* lookupNode(signed short stid);//根据学号查询学生信息。
int addNode(Student st);//添加学生信息。成功返回链表长度。内存分配失败-1;信息重复0
int deleteNode(signed short stid); //根据学号删除学生信息。成功返回链表长度;未找到-1
int updateNode(Student st);//根据学号修改学生信息。成功返回链表长度;未找到0

void main()
{
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
begin->next=NULL;
printf("----------------------------------------------------------------------------\n");
printf("--- 班级信息管理系统 ---\n");
printf("--- 沙支夸依 2007-12-21 ---\n");
printf("----------------------------------------------------------------------------\n");
printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");
printMenu();
while (1)
{
char ch;
ch=getchar();
fflush(stdin);
Student student;
memset(&student,0,sizeof(Student));
switch (ch)
{
case '1':
printf("---添加学生信息。(学号为 0 结束)\n");
while (1)
{
printf("请输入新学号: ");
scanf("%d", &student.id);
if (!student.id)
break;
printf("请输入学生姓名: ");
fflush(stdin);
gets(student.name);
printf("请输入学生姓别: ");
scanf("%s", student.sex);
printf("请输入学生年龄: ");
scanf("%d", &student.age);
printf("请输入学生电话: ");
scanf("%s", student.telNum);
int succ=addNode(student);
if (succ)
{
if (-1==succ)
printf("内存错误!请重新输入!\n");
}
else
printf("对不起!该学号已被占用!\n");
printf("\n");
}
break;
case '2':
printf("---删除学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要删除学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* delNode=lookupNode(stid);
if (!delNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(delNode->data);
printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n");
fflush(stdin);
char cDelete=getchar();
if ('n'==cDelete)
continue;
printf("删除成功!剩余记录数: %d\n",deleteNode(stid));
}
printf("\n");
}
break;
case '3':
printf("---修改学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* updataNode=lookupNode(stid);
if (!updataNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(updataNode->data);
Student student;
student.id=stid;
printf("修改学生姓名: ");
fflush(stdin);
gets(student.name);
printf("修改学生姓别: ");
scanf("%s", student.sex);
printf("修改学生年龄: ");
scanf("%d", &student.age);
printf("修改学生电话: ");
scanf("%s", student.telNum);
updateNode(student);
printf("修改成功!\n");
printStudent(updataNode->data);
}
printf("\n");
}
break;
case '4':
printf("---查询学生信息。(学号为 0 结束)\n");
while (1)
{
signed short stid=0;
printf("请输入要修改学生的学号:");
fflush(stdin);
scanf("%d", &stid);
if (!stid)
break;
Node* findNode=lookupNode(stid);
if (!findNode)
printf("对不起!你要删除的记录不存在。\n");
else
{
printStudent(findNode->data);
}
printf("\n");
}
break;
case '5':
printList();
printMenu();
break;
case '6':
printBye();
return;
default:
printMenu();
}
}
}

void printMenu()
{
printf("----------------------------------------------------------------------------\n");
printf("--- 1、增加学生信息。 2、删除学生信息。 ---\n");
printf("--- 3、修改学生信息。 4、查询学生信息。 ---\n");
printf("--- 5、打印所有信息。 6、退出。 ---\n");
printf("----------------------------------------------------------------------------\n");
}

void printBye()
{
printf("----------------------------------------------------------------------------\n");
printf(" 感谢您使用班级信息管理系统 \n");
printf(" 再 见 \n");
printf("----------------------------------------------------------------------------\n");
}

void printList()
{
Node* temp=begin->next;
if (!temp)
{
printf("暂时无记录可供操作!\n");
}
while (temp)
{
printStudent(temp->data);
temp=temp->next;
}
}

void printStudent(Student st)
{
printf("学号:%-6d 姓名:%-10s 性别:%-6s 年龄:%-3d 电话:%-15s\n",
st.id, st.name, st.sex, st.age, st.telNum);
printf("--------------------------------------------------------------------------\n");
}

Node* lookupNode(signed short stid)
{
Node* temp=begin->next;
while (temp)
{
if (temp->data.id==stid)
return temp;
temp=temp->next;
}
return NULL;
}

int addNode(Student st)
{
if (lookupNode(st.id))
return 0;
Node* temp=(Node*)malloc(sizeof(Node));
if (!temp)
return -1;
temp->data=st;
temp->next=begin->next;
begin->next=temp;
return ++len;
}

int deleteNode(signed short stid)
{
Node* temp=begin;
Node* pos=NULL;
while (temp->next)
{
if (temp->next->data.id==stid)
{
pos=temp->next;
temp->next=pos->next;
free(pos);
return --len;
}
temp=temp->next;
}
return -1;
}

int updateNode(Student st)
{
Node* temp=lookupNode(st.id);
if (!temp)
return 0;
temp->data=st;
return len;
}

Ⅱ C++ 编写程序,随机输入一批正整数,求这些数的和。利用哨兵值作为输入的结束。

#define _CRT_SECURE_NO_DEPRECATE
#include
int main()
{
int i, j, k, sum = 0;
while (scanf("%d", &j), j > 0)
{
if (j % 2 == 0)
sum += j;
}
printf("%d\n", sum);
return 0;
}

Ⅲ C语言编程

你说的就是数值排序。我写了两个,一个是用插入排序,一个是用冒泡排序。只要先输入要排序的数值个数,再依次输入各数值,即得结果。程序在win-tc下试验通过。
(一)/* 插入排序 */
#include <stdio.h>
#define MAX 255
int R[MAX];
void Insert_Sort(int n)
{ /* 对数组R中的记录R[1..n]按递增序进行插入排序 */
int i,j;
for(i=2;i<=n;i++) /* 依次插入R[2],…,R[n] */
if(R[i]<R[i-1])
{/* 若R[i]大于等于有序区中所有的R,则R[i] */
/* 应在原有位置上 */
R[0]=R[i];j=i-1; /* R[0]是哨兵,且是R[i]的副本 */
do{ /* 从右向左在有序区R[1..i-1]中查找R[i]的插入位置 */
R[j+1]=R[j]; /* 将关键字大于R[i]的记录后移 */
j--;
}while(R[0]<R[j]); /* 当R[i]≥R[j]时终止 */
R[j+1]=R[0]; /* R[i]插入到正确的位置上 */
}
}

main()
{
int i,n;
clrscr();
puts("Please input total element number of the sequence:");
scanf("%d",&n);
if(n<=0||n>MAX)
{
printf("n must more than 0 and less than %d.\n",MAX);
exit(0);
}
puts("Please input the elements one by one:");
for(i=1;i<=n;i++)
scanf("%d",&R[i]);
puts("The sequence you input is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
Insert_Sort(n);
puts("\nThe sequence after insert_sort is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
puts("\n Press any key to quit...");
getchar();
getchar();
}

(二)/*冒泡排序*/
#include <stdio.h>
#define MAX 255
int R[MAX];
void Bubble_Sort(int n)
{ /* R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序 */
int i,j;
int exchange; /* 交换标志 */
for(i=1;i<n;i++){ /* 最多做n-1趟排序 */
exchange=0; /* 本趟排序开始前,交换标志应为假 */
for(j=n-1;j>=i;j--) /* 对当前无序区R[i..n]自下向上扫描 */
if(R[j+1]<R[j]){/* 交换记录 */
R[0]=R[j+1]; /* R[0]不是哨兵,仅做暂存单元 */
R[j+1]=R[j];
R[j]=R[0];
exchange=1; /* 发生了交换,故将交换标志置为真 */
}
if(!exchange) /* 本趟排序未发生交换,提前终止算法 */
return;
}
}

void main()
{
int i,n;
clrscr();
puts("Please input total element number of the sequence:");
scanf("%d",&n);
if(n<=0||n>MAX)
{
printf("n must more than 0 and less than %d.\n",MAX);
exit(0);
}
puts("Please input the elements one by one:");
for(i=1;i<=n;i++)
scanf("%d",&R[i]);
puts("The sequence you input is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
Bubble_Sort(n);
puts("\nThe sequence after bubble_sort is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
puts("\n Press any key to quit...");
getchar();
getchar();
}

Ⅳ 谁能解释下C语言哨兵的原理,为什么加入哨兵后就能判断是否越界最好用代码举例解释!

所谓“哨兵”就是用一个特殊值来作为数组的边界,使用“哨兵”可以少用一条判断语句,所以可以提高程序的效率。
比如从整数数组arr中,查找有没有整数num。
应用:假设一个乱序数组,需要查找一个元素是否在该数组中,这时需要用到顺序查找,也就是遍历数组。
一般情况下我们会写下如下代码:
int Sequential_Search(int *a,int n,int key)
{
//数组从1开始
int i;
for(int i=1;i<=n;i++)
{
if(a[i]==key)
return i;
}
return 0;//查找失败
}
有的数据结构书上,会运用哨兵元素,改成这样的代码:
int Sequential_Search2(int *a int n,int key)
{
int i=0;
a[0]=key;//哨兵
i=n;
while(a[i]!=key)
{
i--;
}
return i;//返回0就是查找失败
}

Ⅳ 编程C:使用“监视哨”方法实现顺序表查找,并说明监视哨的作用

你说的“监视哨”就是“哨兵”吧,顺序表查找似乎不需要,“哨兵”多用在排序中,下面给出一个实例带详注。我发的写的程序都是经过验证无误的。本程序在win-tc和Dev-c++下运行通过。
/* 插入排序 */
#include <stdio.h>
#include <conio.h>
#define MAX 255
int R[MAX];
void Insert_Sort(int n)
{ /* 对数组R中的记录R[1..n]按递增序进行插入排序 */
int i,j;
for(i=2;i<=n;i++) /* 依次插入R[2],…,R[n] */
if(R[i]<R[i-1])
{/* 若R[i]大于等于有序区中所有的R,则R[i] */
/* 应在原有位置上 */
R[0]=R[i];j=i-1; /* R[0]是哨兵,且是R[i]的副本 */
do{ /* 从右向左在有序区R[1..i-1]中查找R[i]的插入位置 */
R[j+1]=R[j]; /* 将关键字大于R[i]的记录后移 */
j--;
}while(R[0]<R[j]); /* 当R[i]≥R[j]时终止 */
R[j+1]=R[0]; /* R[i]插入到正确的位置上 */
}
}

main()
{
int i,n;
clrscr();
puts("Please input total element number of the sequence:");
scanf("%d",&n);
if(n<=0||n>MAX)
{
printf("n must more than 0 and less than %d.\n",MAX);
exit(0);
}
puts("Please input the elements one by one:");
for(i=1;i<=n;i++)
scanf("%d",&R[i]);
puts("The sequence you input is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
Insert_Sort(n);
puts("\nThe sequence after insert_sort is:");
for(i=1;i<=n;i++)
printf("%4d",R[i]);
puts("\n Press any key to quit...");
getch();
}

Ⅵ c语言冒泡排序的编程

#include <stdio.h>
void sort(int *a,int len)
{int i=0;
int j;
int t;
for(i=0;i<len-1;i++)
{
for(j=0;j<len-i-1;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
int main(int argc, char *argv[])
{
int a[10]={
-999,2,3,77,12,88,0,-8,99,100
};
int i=0;
sort(a,10);
for(i=0;i<10;i++)
{
printf(%d ,a[i]);
}
return 0;
}
冒泡算法冒泡排序的算法分析与改进 交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。
冒泡排序 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上飘浮。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 (1)初始 R[1..n]为无序区。 (2)第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key<R[j].key,则交换R[j+1]和R[j]的内容。 第一趟扫描完毕时,最轻的气泡就飘浮到该区间的顶部,即关键字最小的记录被放在最高位置R[1]上。 (3)第二趟扫描 扫描R[2..n]。扫描完毕时,次轻的气泡飘浮到R[2]的位置上…… 最后,经过n-1 趟扫描可得到有序区R[1..n] 注意: 第i趟扫描时,R[1..i-1]和R[i..n]分别为当前的有序区和无序区。扫描仍是从无序区底部向上直至该区顶部。扫描完毕时,该区中最轻气泡飘浮到顶部位置R上,结果是R[1..i]变为新的有序区。
2、冒泡排序过程示例 对关键字序列为49 38 65 97 76 13 27 49的文件进行冒泡排序的过程
3、排序算法 (1)分析 因为每一趟排序都使有序区增加了一个气泡,在经过n-1趟排序之后,有序区中就有n-1个气泡,而无序区中气泡的重量总是大于等于有序区中气泡的重量,所以整个冒泡排序过程至多需要进行n-1趟排序。 若在某一趟排序中未发现气泡位置的交换,则说明待排序的无序区中所有气泡均满足轻者在上,重者在下的原则,因此,冒泡排序过程可在此趟排序后终止。为此,在下面给出的算法中,引入一个布尔量exchange,在每趟排序开始前,先将其置为FALSE。若排序过程中发生了交换,则将其置为TRUE。各趟排序结束时检查exchange,若未曾发生过交换则终止算法,不再进行下一趟排序。 (2)具体算法 void BubbleSort(SeqList R) { //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序 int i,j; Boolean exchange; //交换标志 for(i=1;i<n;i++){ //最多做n-1趟排序 exchange=FALSE; //本趟排序开始前,交换标志应为假 for(j=n-1;j>=i;j--) //对当前无序区R[i..n]自下向上扫描 if(R[j+1].key<R[j].key){//交换记录 R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元 R[j+1]=R[j]; R[j]=R[0]; exchange=TRUE; //发生了交换,故将交换标志置为真 } if(!exchange) //本趟排序未发生交换,提前终止算法 return; } //endfor(外循环) } //BubbleSort
4、算法分析 (1)算法的最好时间复杂度 若文件的初始状态是正序的,一趟扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值: Cmin=n-1 Mmin=0。 冒泡排序最好的时间复杂度为O(n)。 (2)算法的最坏时间复杂度 若初始文件是反序的,需要进行n-1趟排序。每趟排序要进行n-i次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置。在这种情况下,比较和移动次数均达到最大值: Cmax=n(n-1)/2=O(n2) Mmax=3n(n-1)/2=O(n2) 冒泡排序的最坏时间复杂度为O(n2)。 (3)算法的平均时间复杂度为O(n2) 虽然冒泡排序不一定要进行n-1趟,但由于它的记录移动次数较多,故平均时间性能比直接插入排序要差得多。 (4)算法稳定性 冒泡排序是就地排序,且它是稳定的。 5、算法改进 上述的冒泡排序还可做如下的改进: (1)记住最后一次交换发生位置lastExchange的冒泡排序 在每趟扫描中,记住最后一次交换发生的位置lastExchange,(该位置之前的相邻记录均已有序)。下一趟排序开始时,R[1..lastExchange-1]是有序区,R[lastExchange..n]是无序区。这样,一趟排序可能使当前有序区扩充多个记录,从而减少排序的趟数。具体算法【参见习题】。 (2) 改变扫描方向的冒泡排序 ①冒泡排序的不对称性 能一趟扫描完成排序的情况: 只有最轻的气泡位于R[n]的位置,其余的气泡均已排好序,那么也只需一趟扫描就可以完成排序。
【例】对初始关键字序列12,18,42,44,45,67,94,10就仅需一趟扫描。 需要n-1趟扫描完成排序情况: 当只有最重的气泡位于R[1]的位置,其余的气泡均已排好序时,则仍需做n-1趟扫描才能完成排序。
【例】对初始关键字序列:94,10,12,18,42,44,45,67就需七趟扫描。 ②造成不对称性的原因 每趟扫描仅能使最重气泡下沉一个位置,因此使位于顶端的最重气泡下沉到底部时,需做n-1趟扫描。 ③改进不对称性的方法 在排序过程中交替改变扫描方向,可改进不对称性。

Ⅶ 共3门学科,要求用C语言编程,输入全班成绩,并把它们的平均分进行排序,如何做到

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#definestuNum3//假设全班学生3人太多我懒得输,反正测试,你想改多少自己改
#definenameLen11//学科名称的最大字符数我预设最多5个中文字不满意自己改

typedefstructxueke
{
charxkName[nameLen];//学科名称
floatxkp;//学科平均分
}XK;
intmain()
{
inty[stuNum],s[stuNum],w[stuNum],i,j;//定义语文数学外语三学科
intnumsave,sum[]={0,0,0};//记录三科成绩和
char*nameSave=(char*)malloc(sizeof(char)*nameLen);
XKxk[3];//记录三科名称及平均分
//录入成绩
printf("录入%d名学生的语文成绩: ",stuNum);
for(i=0;i<stuNum;i++)
{
scanf("%d",&y[i]);
sum[0]=sum[0]+y[i];
}
printf("录入%d名学生的数学成绩: ",stuNum);
for(i=0;i<stuNum;i++)
{
scanf("%d",&s[i]);
sum[1]=sum[1]+s[i];
}
printf("录入%d名学生的外语成绩: ",stuNum);
for(i=0;i<stuNum;i++)
{
scanf("%d",&w[i]);
sum[2]=sum[2]+w[i];
}

strcpy(xk[0].xkName,"语文");
xk[0].xkp=(float)sum[0]/stuNum;
strcpy(xk[1].xkName,"数学");
xk[1].xkp=(float)sum[1]/stuNum;
strcpy(xk[2].xkName,"外语");
xk[2].xkp=(float)sum[2]/stuNum;

for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
if(xk[i].xkp<xk[j].xkp)//降序排列
{
numsave=xk[i].xkp;
memset(nameSave,0,nameLen);
strcpy(nameSave,xk[i].xkName);

xk[i].xkp=xk[j].xkp;
memset(xk[i].xkName,0,nameLen);
strcpy(xk[i].xkName,xk[j].xkName);

xk[j].xkp=numsave;
memset(xk[j].xkName,0,nameLen);
strcpy(xk[j].xkName,nameSave);
}
}

}


//打印
printf("降序排列 ");
for(i=0;i<3;i++)
{
printf("学科:%s平均分:%.1f ",xk[i].xkName,xk[i].xkp);
}
}

Ⅷ 编程实现顺序查找("哨兵"的使用)与折半查找(有序表)算法.

顺序查找

#include <stdio.h>
#include <stdlib.h>
#define MAX_LENGTH 100typedef int KeyType;
typedef struct {
KeyType *elem;
int length;
}SSTable; //顺序表的存储结构
int Search_Seq(SSTable ST, KeyType key){
int i;
ST.elem[0] = key; //“哨兵”,如果顺序表中不存在要查找的数据的话,则查找指针必定指向该哨兵
for(i = ST.length; ST.elem[i] != key; i--)
;
return i; //找到的话,则i != 0,否则i = 0
}

void main()
{
int i, key;
SSTable T;
T.elem = (KeyType *)malloc(sizeof(KeyType));
printf("How Many Entries Do You Want input\n");
scanf("%d", &T.length);
for(i=1; i<=T.length; i++){
printf("Please input the %dth entries \n", i);
scanf("%d", &T.elem[i]);
}
for (i=1; i<=T.length; i++)
printf("%5d",T.elem[i]); //显示已经输入的所有数据
printf("\nPlease input the data you want to search\n");
scanf("%d", &key);
i = Search_Seq(T,key);
printf("the search data is locate the %dth(0 indicate can not find)\n",i);
}

折半查找
#include <stdio.h>
#include <stdlib.h>
int binSearch(const int *Array,int start,int end,int key)
{
int left,right;
int mid;
left=start;
right=end;
while (left<=right) {
mid=(left+right)/2;
if (key<Array[mid])
{
right=mid-1;
}
else if(key>Array[mid])
{
left=mid+1;
}
else
return mid;
}
return -1;
}

void main()
{
int A[]={10,20,30,40,50,60,70,80};
int n;
printf("Please search num:");
scanf("%d",&n);
int index=binSearch(A,0,8,n);

if(index==-1)
{
printf("no num");
}
else
{
printf("index=%d",index+1);
}

}

Ⅸ c语言编程问题

多开一个b[7] 数组放原来序号。

#include<stdio.h>
#include<stdlib.h>
void main()
{
int a[7] ={85,78,65,57,58,90,89};
int b[7]={0,1,2,3,4,5,6};
int i,j,tmp;
for (i=0;i<6;i++)
for (j=i+1;j<7;j++)
{
if (a[j] > a[i]) {
tmp=a[j];a[j]=a[i];a[i]=tmp;
tmp=b[j];b[j]=b[i];b[i]=tmp;
}
}
for (i=0;i<7;i++) printf("%d ",b[i]);
}

Ⅹ 编程里“哨兵”是什么意思

就是 sentinel ,就是用来指定一个位置的特殊元素,比如 快速排序 里面,需要选一个变量作为中间值,这个值就是一个 sentinel,又比如用来指示一个队列尾部位置的变量

热点内容
小米换机的备份密码是多少 发布:2025-01-13 22:19:53 浏览:681
kindle可以解压吗 发布:2025-01-13 22:19:53 浏览:962
怎么在酷我音乐上传歌词 发布:2025-01-13 22:18:12 浏览:443
云南正舵者ipfs云服务器收益 发布:2025-01-13 22:11:52 浏览:921
plsql函数 发布:2025-01-13 22:11:19 浏览:60
数据结构图的存储 发布:2025-01-13 22:11:14 浏览:577
oraclesha1加密 发布:2025-01-13 22:08:26 浏览:762
建立一个打不开的文件夹 发布:2025-01-13 22:04:14 浏览:246
小桔商家通安卓版哪里可以下载 发布:2025-01-13 21:59:01 浏览:157
php取来路 发布:2025-01-13 21:58:56 浏览:761