1
0
mirror of https://github.com/cuntoushifu/408.git synced 2026-06-18 09:36:28 +08:00
This commit is contained in:
杨烨
2021-12-27 22:44:31 +08:00
parent 4d3e8b7d45
commit b958a96a24
6 changed files with 160 additions and 33 deletions

View File

@@ -172,5 +172,3 @@
![](16/03.png)
* 4
![](16/04.png)
> 等待更新

View File

@@ -1,29 +0,0 @@
using namespace std;
#include <ostream>
#define MaxSize 100
/*
* ¾²Ì¬·ÖÅä
*/
typedef struct {
int data[MaxSize];
int length;
}SqList;
void initList(SqList &sq) {
for (int i = 0; i < sq.length; i++)
sq.data[i] = 0;
sq.length = 0;
}
void printSq(SqList sq) {
for (int i = 0; i < sq.length; i++)
printf("%d:%d\n", i, sq.data[i]);
}
int main() {
SqList sq;
initList(sq);
printSq(sq);
system("pause");
return 0;
}

View File

@@ -110,7 +110,8 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="test.cpp" />
<ClCompile Include="顺序表动态分配.cpp" />
<ClCompile Include="顺序表静态分配.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@@ -15,7 +15,10 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="test.cpp">
<ClCompile Include="顺序表静态分配.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="顺序表动态分配.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>

View File

@@ -0,0 +1,57 @@
#pragma warning(disable:4996) //»òÕßʹÓÃÕâ¸ö
#include <stdio.h>
#include <stdlib.h>
#define InitSize 5
typedef struct {
int *data;
int MaxSize;
int length;
}SeqList;
void initList(SeqList &sq) {
sq.data = (int *)malloc(sizeof(int)*InitSize);
sq.length = 0;
sq.MaxSize = InitSize;
}
void increaseSize(SeqList &sq, int len)
{
int *p=sq.data;
sq.data = (int *)malloc(sizeof(int)*(len + sq.MaxSize));
for (int i = 0; i < sq.length; i++)
sq.data[i] = p[i];
sq.MaxSize = len + sq.MaxSize;
free(p);
}
void printSq(SeqList sq) {
for (int i = 0; i < sq.length; i++)
printf("%d ", sq.data[i]);
printf("\n");
}
/*
malloc()
free()
new
delete
*/
//int main() {
// SeqList sq;
// initList(sq);
// for (int i = 0; i < sq.MaxSize; i++)
// scanf("%d", &sq.data[i]);
// sq.length = sq.MaxSize;
//
// printSq(sq);
//
// increaseSize(sq, 5);
// sq.length = sq.MaxSize;
// printSq(sq);
//
//
//
// system("pause");
// return 0;
//}

View File

@@ -0,0 +1,97 @@
//using namespace std;
#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 100
/*
* 静态分配
*/
typedef struct {
int data[MaxSize];
int length;
}SqList;
void initList(SqList &sq) {
//for (int i = 0; i < sq.length; i++)
// sq.data[i] = 0;
sq.length = 0;
}
void printSq(SqList sq) {
printf("长度:%d\n", sq.length);
for (int i = 0; i < sq.length; i++)
printf("%d ", sq.data[i]);
printf("\n");
}
/*
x
1 2 3 4 5
3 4 5
*/
bool listInsert(SqList &sq,int i,int e) {
if (sq.length+1 > MaxSize||i>sq.length+1||i<1) return 0;
printf("%d位置插入%d\n", i, e);
for (int j = sq.length; j > i-1; j--)
sq.data[j] = sq.data[j -1];
sq.data[i-1] = e;
sq.length++;
return 1;
}
int listDelete(SqList &sq,int i,int &e) {
printf("%d位置删除%d\n", i, e);
if (i<1 || i>sq.length) return 0;
e = sq.data[i - 1];
for (int j = i; j<sq.length; j++)
sq.data[j-1] = sq.data[j];
sq.length--;
return 1;
}
void scanfSq(SqList &sq) {
int len=0;
puts("输入长度:");
scanf("%d", &len);
fflush(stdin);
puts("输入元素:");
sq.length = len;
for (int i = 0; i < len; i++)
scanf("%d", &sq.data[i]);
fflush(stdin);
}
int main() {
SqList sq;
initList(sq);
scanfSq(sq);
printSq(sq);
int insertTmp=0,insertI=0;
printf("位置元素 :\n");
scanf("%d", &insertI);
scanf("%d", &insertTmp);
listInsert(sq, insertI, insertTmp);
printSq(sq);
fflush(stdin);
printf("删除第几个元素:\n");
int tmp = 0,result=0;
scanf("%d", &tmp);
listDelete(sq, tmp,result);
printSq(sq);
system("pause");
return 0;
}