请各位童鞋们睁大看好了,只教一遍哦~~!!!
1.创一个结构体,用于存数据元素
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 10
typedef struct {
int* data;
int length;
} list;
2.创建顺序表
void Createlist(list*L)
{
L->data = (int*)malloc(Maxsize*sizeof(int));
L->length = 0;
if (L->data == NULL) {
printf("error:内存分配失败!");
exit(0);
}
}
3.初始化顺序表
//初始化顺序表
void Initlist(list* L)
{
for (int i = 0;i < 10;i++) {
L->data[i] = i;
L->length++;
}
}
4.顺序表插入
void Insertlist(list* L, int i, int e)
{
if (i<1 || i>L->length) {
printf("erro!\n");
exit(0);
}
else {
for (int j = L->length;j >= i - 1;j--) {
L->data[j + 1] = L->data[j];
}
L->data[i - 1] = e;
L->length++;
}
}
5.顺序表删除
void deletelist(list* L, int i)
{
if (i<1 || i>L->length) {
printf("erro!\n");
exit(0);
}
else {
for (int j = i;j <= L->length;j++) {
L->data[j - 1] = L->data[j];
}
L->length--;
}
}
6.顺序表查找
void Locate(list*L,int e)
{
for (int i = 0;i <= L->length; i++) {
if (L->data[i] == e) {
printf("元素%d存在\n", i);
break;
}
}
}
7.打印顺序表
void printlist(list*L)
{
for (int i = 0;i < L->length;i++) {
printf("%-4d\n", L->data[i]);
}
}
8.主函数切口
int main() {
list L;
Createlist(&L);
Initlist(&L);
printf("*********************数字插入前*********************\n");
Insertlist(&L, 5, 666);
printlist(&L);
printf("*********************数字删除后*********************\n");
deletelist(&L, 2);
printlist(&L);
printf("*********************数字查找中*********************\n");
Locate(&L, 9);
free(L.data);
return 0;
}
9.运行结果
10.源程序
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 10
typedef struct {
int* data;
int length;
} list;
//创建顺序表
void Createlist(list*L)
{
L->data = (int*)malloc(Maxsize*sizeof(int));
L->length = 0;
if (L->data == NULL) {
printf("error:内存分配失败!");
exit(0);
}
}
//初始化顺序表
void Initlist(list* L)
{
for (int i = 0;i < 10;i++) {
L->data[i] = i;
L->length++;
}
}
//顺序表插入
void Insertlist(list* L, int i, int e)
{
if (i<1 || i>L->length) {
printf("erro!\n");
exit(0);
}
else {
for (int j = L->length;j >= i - 1;j--) {
L->data[j + 1] = L->data[j];
}
L->data[i - 1] = e;
L->length++;
}
}
//顺序表删除
void deletelist(list* L, int i)
{
if (i<1 || i>L->length) {
printf("erro!\n");
exit(0);
}
else {
for (int j = i;j <= L->length;j++) {
L->data[j - 1] = L->data[j];
}
L->length--;
}
}
//顺序表查找
void Locate(list*L,int e)
{
for (int i = 0;i <= L->length; i++) {
if (L->data[i] == e) {
printf("元素%d存在\n", i);
break;
}
}
}
//打印顺序表
void printlist(list*L)
{
for (int i = 0;i < L->length;i++) {
printf("%-4d\n", L->data[i]);
}
}
//主函数切口
int main() {
list L;
Createlist(&L);
Initlist(&L);
printf("*********************数字插入前*********************\n");
Insertlist(&L, 5, 666);
printlist(&L);
printf("*********************数字删除后*********************\n");
deletelist(&L, 2);
printlist(&L);
printf("*********************数字查找中*********************\n");
Locate(&L, 9);
free(L.data);
return 0;
}
好了,本节课到这里,下课!!!
给为童鞋们学废了吗???