关于我们
顺序表sqlist.cpp
Very2 发表于2026-05-23 浏览995 评论0
//顺序表基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{ ElemType data[MaxSize]; //存放顺序表元素
int length; //存放顺序表的长度
} SqList; //顺序表的类型
void CreateList(SqList *&L,ElemType a[],int n)
//建立顺序表
{
L=(SqList *)malloc(sizeof(SqList));
for (int i=0;i<n;i++)
L->data[i]=a[i];
L->length=n;
}
void InitList(SqList *&L)
{
L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间
L->length=0;
}
void DestroyList(SqList *&L)
{
free(L);
}
bool ListEmpty(SqList *L)
{
return(L->length==0);
}
int ListLength(SqList *L)
{
return(L->length);
}
void DispList(SqList *L)
{
for (int i=0;i<L->length;i++)
printf("%d ",L->data[i]);
printf("\n");
}
bool GetElem(SqList *L,int i,ElemType &e)
{
if (i<1 || i>L->length)
return false;
e=L->data[i-1];
return true;
}
int LocateElem(SqList *L, ElemType e)
{
int i=0;
while (i<L->length && L->data[i]!=e) i++;
if (i>=L->length)
return 0;
else
return i+1;
}
bool ListInsert(SqList *&L,int i,ElemType e)
{
int j;
if (i<1 || i>L->length+1 || L->length==MaxSize)
return false;
i--; //将顺序表位序转化为elem下标
for (j=L->length;j>i;j--) //将data[i]及后面元素后移一个位置
L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++; //顺序表长度增1
return true;
}
bool ListDelete(SqList *&L,int i,ElemType &e)
{
int j;
if (i<1 || i>L->length)
return false;
i--; //将顺序表位序转化为elem下标
e=L->data[i];
for (j=i;j<L->length-1;j++) //将data[i]之后的元素前移一个位置
L->data[j]=L->data[j+1];
L->length--; //顺序表长度减1
return true;
}
关于我们
信息素养大赛备考资料
Very2 发表于2026-05-16 浏览960 评论0
关于我们
Python模拟卷
Very2 发表于2026-05-15 浏览784 评论0
关于我们
C++模拟卷
Very2 发表于2026-04-25 浏览1114 评论1
关于我们
高精度
Very2 发表于2026-04-25 浏览1090 评论0
#include<bits/stdc++.h>
using namespace std;
string s1,s2; //字符串表示高精度数
int a[210],b[210],c[210]; //转存至整数数组
int main(){
cin>>s1>>s2; //输入加数1和加数2
int len1,len2; //字符串长度
len1=s1.size();
len2=s2.size();
//逆序存储加数1至整数数组a
for(int i=0;i<=len1-1;i++){
a[i]=s1[len1-i-1]-'0';}
//逆序存储加数2至整数数组b
for(int i=0;i<=len2-1;i++){
b[i]=s2[len2-i-1]-'0';}
//取两个加数位数最大值len,是否满10进位用x表示
int len,x=0;
len=max(len1,len2);
//加数1和加数2,循环按位累加后转存至数组c,满10则进位1
for(int i=0;i<=len-1;i++){
c[i]=a[i]+b[i]+x;
if(c[i]>=10){ //满10则进位1
c[i]-=10; //当前位减10
x=1; //进位加1
}
else x=0;}
//如果循环结束后进位1(即最高位满10进1),则直接先输出1
if(x==1){
cout<<1;
for(int i=len-1;i>=0;i--){ //逆序输出保存和的数组c
cout<<c[i]; }
}
else{ //如果最高位不满10进1
//先剔除数组c尾部连续的0(即作为和的结果头部连续的0)
while(c[len-1]==0&&len-1>0){
len--;}
for(int i=len-1;i>=0;i--){ //逆序输出保存和的数组c
cout<<c[i]; }
}
return 0;
}
关于我们
算法流程图
Very2 发表于2026-03-21 浏览1493 评论0
P1739 表达式括号匹配 栈解法 流程图
童禹承
2024
童禹承 发表于2024-08-29 浏览142 评论0
1.n位int整数类型范围:-2^n-1~2^n-1-1
2.n进制数转十进制数:按权展开(n^(位数-1)*位值)
3.特定乘积
4.格雷码:左数与右数只有一个数不同
5.内存大小比较:bit<kb<mb 进率1024
6.基本数据类型:定义变量类型
7.循环语句:对多次重复操作的省略
童禹承
2023
童禹承 发表于2023-08-29 浏览191 评论0
1.常量关键字:const
2.n进制进率:每n进1
3.结构体定义:结构体名.结构体成员
4.链表:指针指向下一个节点
5.二叉树高度:log2(节点)+1
6.算法
7.高精度:用数组代替超长数字
8.
9.进制转换:转成相同进制
10.哈夫曼编码:左0右1
11.二叉树:中序+(前序/后序)=树的全貌
12.拓扑排序:将没有上一个的顶点输出并删除此顶点和与此顶点相连的线
童禹承
2022
童禹承 发表于2022-09-05 浏览142 评论0
1.面向对象特性:对外隐藏内部实现细节
2.栈的特性:后进先出
3.指针的概念:指向地址
4.链表和数组: 数组大小固定,链表大小可动态调整
5.栈的特性:后进先出
6.
7.哈夫曼编码:根到叶子,左0,右1
8.完全二叉树:左子树=根*2,右子树=根*2+1
9.邻接矩阵:连通图至少元素=顶点数
10.数据结构:队列和栈可以转换,图分为有向和无向
11.双向循环链表:用指针指向上一个和下一个,最后一个的下一个指针指向第一个
童禹承
2021
童禹承 发表于2021-09-05 浏览161 评论0
1.面向对象语言:c++,Python,Java
2.计算机奖项:图灵奖
3.计算机储存数据:转换成二进制
4.打擂台:最坏n次
5.栈的特性:后进先出
6.图变树:删m−n−1条边
7.n进制数转十进制数:按权展开(n^(位数-1)*位值)
8.二叉树:高度为n的完全二叉树有2^(n-1)种不同的形态
9.
10.n个人,两个人组一队,不区分队伍的编号。不同的组队情况有从1加到n-1种