#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int DataType;
struct SqList {
int Data[MAXSIZE];
int last;//指针,保存线性数组中最后一个元素的位置
} List;
typedef struct SqList * pList;
//初始化线性表,返回线性表的头指针
pList initSqList()
{
pList plist;
plist = (pList)malloc(sizeof(struct SqList));
plist->last = -1;
return plist;
}
//查找元素函数,返回元素
DataType findElement(DataType x,pList list)
{
int i = 0;
while(i <= list->last && list->Data[i] != x)
{
i++;
}
if(i > list->last){
return -1;//说明没有找到x
}
else
{
return i;
}
}
//插入元素
void insertElement(DataType x,int i,pList list)
{
int j;
if(list->last == MAXSIZE-1)
{
printf("线性表空间已满");
return;
}
if(i < 0 || i > list->last+1)
{
printf("插入的位置不对");
return;
}
for (int j = list->last+1; j >= i ; --j)
{
list->Data[j+1] = list->Data[j];
}
list->Data[i] = x;
list->last++;
}
//删除元素,按下标删除
void deleteElement(int i,pList list)
{
int j;
if(i < 0 || list->last < i)
{
printf("不存在第%d个元素",i);
return;
}
for (int j = i; j <=list->last; ++j) {
list->Data[j] = list->Data[j+1];
}
list->last--;
return;
}
//遍历输出线性表函数
void printList(pList list)
{
int len = list->last;
for(int i = 0;i <= len;i++)
{
printf("%d\t",list->Data[i]);
}
printf("\n");
}
//主函数
int main(void)
{
pList list;
list = initSqList();
//键盘键入字符,想list线性表插入元素
printf("插入线性表,按回车结束:\n");
int element;
int i = 0;
while(1)
{
scanf("%d",&element);
insertElement(element,i,list);
i++;
if(getchar() == '\n')
{
break;
}
}
// for (int i = 0; i < 10; ++i) {
// insertElement(i,i,list);
// }
printList(list);
return 0;
}
线性表的相关操作
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 正文之前 不管怎么说,好歹是吧王道的第二章看完了!线性表算法写的我都快吐了,不过成果也是有的,可以写一些稍微复杂的...