线性表的实现--用通用方法实现线性表的初始化求表长插入元素删除元素等
Posted duanqibo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性表的实现--用通用方法实现线性表的初始化求表长插入元素删除元素等相关的知识,希望对你有一定的参考价值。
//线性表的通用程序,c语言实现
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef char DataType;
typedef struct node
DataType data[MaxSize]; int last;
Lnode,*List;
//初始化线性表
void Init_List(List L)
L->last = 0;
//线性表的长度
int Length_List(List L)
return L->last;
//取表中元素
DataType Get_List(List L, int i, DataType x)
if (i<1 || i>L->last)
printf("error!!!");
else
x = L->data[i-1]; return x;
//查找表L中值为x的元素,其结果返回在表L中首次出现的值为x元素的序号或地址
DataType Location_List(List L, DataType x)
int i = 0;
while (i < L->last && L->data[i] != x)
i++;
if (i == L->last)
return -1;
else
return (i + 1);
//在线性表的第i个位置插入值为x人元素
void Insert_List(List L, int i, DataType x)
int j;
if (i<1 || i>L->last + 1)
printf("插入位置错!!!\n");
else
for (j = L->last; j >= i; j--)
L->data[j] = L->data[j - 1];
L->data[i - 1] = x;
L->last++;
//删除线性表第i个位置上的元素
void Delete_List(List L, int i)
int j;
if (i<1 || i>L->last)
printf("del error");
else
for (j = i; j < L->last; j++)
L->data[j - 1] = L->data[j];
L->last--;
//输出线性表
void Print_List(List L)
int i;
for (i = 1; i < L->last; i++)
printf("%c->",L->data[i-1]);
printf("%c",L->data[L->last-1]);
///////////////主函数////////////////
void main()
int i = 1, n;
Lnode L;
char ch, x;
Init_List(&L);
printf("\n\n\n***************线性表演示程序****************\n");
printf("请输入您想建立的线性表的元素,以#结束:");
ch = getchar();
while (ch != ‘#‘)
Insert_List(&L,i,ch);
i++;
ch = getchar();
printf("你建立的线性表为:");
Print_List(&L);
printf("\n线性表的长度为:%d",L.last);
//fflush(stdin);
printf("\n输入你想查找的元素:");
fflush(stdin);
scanf("%c",&x);
printf("你查找的元素为%c序位为%d\n",x,Location_List(&L,x));
printf("输入你想查找的元素序位:");
scanf("%d",&n);
printf("\n你查找的元素为:%c\n",Get_List(&L,n,x));
printf("输入你想插入的元素以及序位:<用逗号隔开>");
fflush(stdin);
scanf("%c,%d",&x,&n);
Insert_List(&L,n,x);
printf("\n插入后的线性表为:\n");
Print_List(&L);
fflush(stdin);
printf("\n请输入你想删除的元素序位:");
scanf("%d",&n);
Delete_List(&L,n);
printf("\n删除后的线性表为:\n");
Print_List(&L);
printf("\n");
system("pause");
以上是关于线性表的实现--用通用方法实现线性表的初始化求表长插入元素删除元素等的主要内容,如果未能解决你的问题,请参考以下文章
数据结构c语言版 使用线性表的顺序储存结构定义(静态)实现线性表的初