📄 lian.c
字号:
// lian.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#define ListSize 100// 假定表空间大小为100
#include <stdio.h>
#include <stdlib.h>
void Error(char * message)
{
fprintf(stderr,"错误:%s\n",message);
exit(1);
}//从0开始计, 表空间大小应为101了
typedef int Datatype ;//假定Datatype的类型为int型
typedef struct{
Datatype data[ListSize];// 向量data用于存放表结点
int length; // 当前的表长度
} Seqlist;
//以上为定义表结构
//------------以下为两个主要算法----------
void InsertList ( Seqlist *L, Datatype x, int i)
{
//将新结点x插入L所指的顺序表的第i个结点ai的位置上
int j;
if ( i < 0 || i > L -> length )
Error("position error");// 非法位置,退出
if ( L->length>=ListSize )
Error("overflow");
for ( j=L->length-1 ; j >= i ; j --)
L->data[j+1]=L->data [j];
L->data[i]=x ;
L->length++ ;
}
void DeleteList ( Seqlist *L, int i )
{// 从L所指的顺序表中删除第i个结点ai
int j;
if ( i< 0 || i > L-> length-1)
Error( " position error" ) ;
for ( j = i+1 ; j < L-> length ; j++ )
L->data [ j-1 ]=L->data [ j]; // 结点前移
L-> length-- ; //表长减小
}
//===========以下为验证算法而加=======
void Initlist(Seqlist *L)
{
L->length=0;
}
void main()
{
Seqlist *SEQA=new Seqlist;
Initlist(SEQA);
int i;
for (i=0;i<ListSize;i++)
{
InsertList (SEQA,i,i);
printf("%d\n",SEQA->data[i]);
}
DeleteList (SEQA,99);
for (i=0;i<ListSize-1;i++)
{
printf("%d\n",SEQA->data[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -