用C语言建立链表并进行基础操作
来源:互联网 发布:犀牛软件版本分析 编辑:程序博客网 时间:2024/06/05 18:56
//数据结构课的作业,就作为我的处女作吧,哈哈
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#defineMAXSIZE 100
#defineLISINCREMENT 10
typedefstructSq
{
int *elem;//基地址
int length;//顺序表中元素个数
int size;//顺序表的长度
}SqList;
//创建顺序表
SqList* CreatSqList(SqList *L)
{
if (!(L->elem = (int*)malloc(MAXSIZE * sizeof(int))))
{
printf("内存分配错误\n");
exit(0);
}
L->length = 0;
L->size =MAXSIZE;
returnL;
}
//增加
SqList * ListInsert(SqList *L,inti,inte)//i为插入位置,e为插入值
{
if ((i<0) || (i>L->length))
{
printf("插入位置不正确\n");
return 0;
}
//插入数据
int a;
for (a =L->length; a > i; a--)
L->elem[a] =L->elem[a - 1];
L->elem[i] =e;
L->length++;
returnL;
}
//删除
SqList* ListDelete(SqList *L,inti)
{
if (i < 0 ||i >= L->length)
{
printf("删除位置不正确\n");
//return 0;
}
//删除数据
for (int a =i-1; a < L->length; a++)
L->elem[a] =L->elem[a + 1];
L->length--;
returnL;
}
//排序
SqList* ShengXu(SqList *L)
{
int t;
for (int i = 0; i<L->length; i++)
for (int j = i + 1; j<L->length; j++)
if (L->elem[i]>L->elem[j])
{
t = L->elem[j];
L->elem[j] = L->elem[i];
L->elem[i] = t;
}
returnL;
}
int main()
{
int i, j, e;
SqList *L = (SqList*)malloc(sizeof(SqList));
L = CreatSqList(L);
printf("请输入顺序表的长度\n");
scanf("%d", &L->length);
printf("请输入顺序表各元素\n");
for (i = 0; i < L->length; ++i)
scanf("%d", &L->elem[i]);
printf("输入的顺序表是\n");
for (i = 0; i < L->length; ++i)
printf("%d\t", L->elem[i]);
printf("\n");
printf("请输入要插入的位置以及数值\n");
scanf("%d,%d", &i, &e);
L = ListInsert(L, i-1, e);
printf("插入后表的顺序为\n");
for (i = 0; i < L->length; i++)
printf("%d\t", L->elem[i]);
printf("\n");
printf("请输入要删除的位置\n");
scanf("%d", &i);
L = ListDelete(L, i);
printf("删除后表的顺序为\n");
for (i = 0; i < L->length; i++)
printf("%d\t", L->elem[i]);
printf("\n");
printf("升序排列后顺序为\n");
L = ShengXu(L);
for (i = 0; i < L->length; ++i)
printf("%d\t", L->elem[i]);
printf("\n");
system("pause");
return 0;
}
- 用C语言建立链表并进行基础操作
- C语言用带头节点的链表创建多项式并进行相关操作
- 【C语言】建立动态链表并输出链表
- 【C语言】建立静态链 并 输出链表
- 用C语言建立静态链表
- 用c语言对ldap进行操作
- 【C语言】动态链表建立工人档案,并输出结果
- 链表基础操作+实例[C语言实现]
- C语言链表操作(新增单向链表的逆序建立)
- 栈的建立&操作(C语言)
- c语言链表的建立
- C语言:链表建立 头插法 尾插法
- C语言:建立动态链表
- C语言单向链表的建立
- C语言单向链表的建立
- C语言单向链表的建立
- C语言单向链表的建立
- C语言单向链表的建立
- MacOS 开发
- LeetCode题解 week2(2)
- Spring Boot第四弹:Spring Boot之@Value和@ConfigurationProperties
- Day12 Servlet
- 文章标题
- 用C语言建立链表并进行基础操作
- Unity前期学习的内容,以及一些可能遇到的问题
- 图像语义分割:从头开始训练deeplab v2系列之四【nyu v2数据集】
- 46muduo库使用示例(五)
- 第三周项目二 建设“顺序表”算法库
- centos启动_某个开机启动的服务有问题导致不能启动
- (青岛站)1011
- 无限轮播
- 2017 ACM/ICPC Asia Regional Qingdao Online HDU 6214 Smallest Minimum Cut(最小割的边数)