设为首页 加入收藏

TOP

C语言代码实现线性表、顺序表,及处理整型数据(一)
2017-10-24 09:18:16 】 浏览:625
Tags:语言 代码 实现 线性 顺序 处理 数据

#include

#include //conio是Console Input / Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,

//主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。

#define MAX 30 //定义线性表的最大长度

enum BOOL{False,True}; //定义BOOL型

typedef struct{

int elem[MAX]; //int数组类型的线性表

int length; //length指示当前线性表的长度

}sqlist; //sqlist是struct的别名。

void initial(sqlist &); //初始化线性表1.

BOOL insert(sqlist &v,int loc,int intt); //在线性表中插入元素 (引用线性表,位置,int型变量)2.

BOOL del(sqlist &,int weizhi,int &); //在线性表中删除元素 (引用线性表,位置,返回该位置被删除元素的元素值)3.

//1.2.3.都需要对线性表进行操作,所以是对线性表的引用。&。

int locate(sqlist,int elem); //在线性表中定位元素(线性表,需要被查找的元素)

void print(sqlist); //显示线性表中所有元素(打印出线性表中所有元素)

void main()//(主函数)

{

sqlist S; //S为一线性表(创建一个名叫S的顺序表结构体对象。)

int loc,flag=1; //定义整型位置变量,和标记变量(标记变量的作用之后用于进入while循环)

char j; //用于之后swich来选择条件的一个字符。

int intt; //(要插入的int型变量元素)

BOOL temp; //(temp用来记录插入,删除函数是否成功插入的返回值)

printf("本程序用来实现顺序结构的线性表。\n");

printf("可以实现查找、插入、删除等操作。\n");

initial(S); //初始化线性表(调用之后的函数进行初始化。)

while(flag)

{

printf("请选择:\n");

printf("1.显示所有元素\n");

printf("2.插入一个元素\n");

printf("3.删除一个元素\n");

printf("4.查找一个元素\n");

printf("5.退出程序 \n");

scanf(" %c",&j);

switch (j)

{

case '1':print(S); break; //显示所有元素

case '2':

{

printf("请输入要插入的元素(一个字符)和插入位置:\n");

printf("格式:字符,位置;例如:a,2\n");

scanf(" %d,%d", &intt, &loc); //输入要插入的元素和插入的位置

temp = insert(S, loc, intt); //插入

if (temp == False)

printf("插入失败!\n"); //插入失败

else

{

printf("插入成功!\n");

print(S);

} //插入成功

break;

}

case '3':{printf("请输入要删除元素的位置:");

scanf("%d", &loc); //输入要删除的元素的位置

temp = del(S, loc, intt); //删除(引用线性表,位置,返回该位置被删除元素的元素值)

if (temp == True)

printf("删除了一个元素:%d\n", intt); //删除成功

else

printf("该元素不存在!\n"); //删除失败

print(S);

break;

case '4':{

printf("请输入要查找的元素:");

scanf(" %d", &intt); //输入要查找的元素

loc = locate(S, intt); //定位

if (loc != -1)

printf("该元素所在位置:%d\n", loc + 1); //显示该元素位置

else

printf("%d 不存在!\n", intt);//当前元素不存在

break;

}

case '5':{

flag = 0;

printf("程序结束,按任意键退出!\n"); }

}

}

getch();

}

}

void initial(sqlist &v)

{

//初始化线性表

int i;

printf("请输入初始线性表长度:n="); //输入线性表初始化时的长度

scanf("%d",&v.length);

printf("请输入从1到%d的各元素(整型),例如:1 2 3 4\n",v.length);

getchar();

for(i=0;i scanf("%d",&v.elem[i]); //输入线性表的各元素

}

BOOL insert(sqlist &v,int loc,int intt)

{

//插入一个元素,成功返回True,失败返回False

int i;

if((loc<1)||(loc>v.length+1))

{

printf("插入位置不合理!\n"); //位置不合理

return False;

}

else if(v.length>=MAX) //线性表已满

{

printf("线性表已满!\n");

return False;

}

else

{

for(i=v.length-1;i>=loc-1;i--)

v.elem[i+1]=v.elem[i]; //其后元素依次后移

v.elem[loc-1]=intt; //插入元素

v.length++; //线性表长度加一

return True;

}

}

BOOL del(sqlist &v,int loc,int &intt)

{

//删除一个元素,成功返回True,并用ch返回该元素值,失败返回False

int j;

if(loc<1||loc>v.length) //删除位置不合理

return False;

else {

intt=v.elem[loc-1]; //ch取得该元素值

for(j=loc-1;j v.elem[j]=v.elem[j+1]; //其后元素依次前移

v.length--; //线性表长度减一

return True;

}

}

int locate(sqlist v,int intt)

{

//在线性表中查找int元素的位置,成功返回其位置,

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言pragma用法详解 下一篇c中各个变量存储位置的介绍

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目