数据结构---线性表的顺序存储结构
程序员文章站
2022-06-01 20:24:09
...
#include <stdio.h>
#define TRUE 1
#define FALSE 0
#define MAXSIZE 19
typedef struct
{
int data[MAXSIZE];
int length;
}linklist;
linklist link_list;
int linkInsert(int i, int data)
{
int k;
if(link_list.length == MAXSIZE)
{
return FALSE;
}
if(i < 1 || i > link_list.length + 1)
{
return FALSE;
}
if(i <= link_list.length)
{
for(k = link_list.length - 1; k >= i - 1; k--)
{
link_list.data[k+1] = link_list.data[k];
}
}
link_list.data[i-1] = data;
link_list.length++;
return TRUE;
}
int linkDelete(int i)
{
int k;
if(link_list.length == 0)
{
return FALSE;
}
if(i < 1 || i > link_list.length)
{
return FALSE;
}
if(i < link_list.length)
{
for(k = i - 1; k < link_list.length - 1; k++)
{
link_list.data[k] = link_list.data[k+1];
}
}
link_list.length--;
return TRUE;
}
int linkPrintf()
{
int i;
for(i = 0; i < link_list.length; i++)
{
printf("data[%d] = %d num = %d\n", i, link_list.data[i], link_list.length);
}
return TRUE;
}
int main(int argc, char* argv[])
{
int m, n, k;
while(1)
{
printf("please input i and data\n");
scanf("%d%d", &m, &n);
linkInsert( m, n);
linkPrintf();
printf("is delete data?y/n\n");
scanf("%d", &k);
if(k)
{
linkDelete(k);
linkPrintf();
}
}
return 0;
}
(未完待编辑)