顺序表的建立 基本输入输出

输入数据的个数n 输入n个数  然后输出 
input 
5
1 2 3 4 5
output
1 2 3 4 5
以下是代码:
#include<stdio.h>
#include<stdlib.h>
#define list_size 10000
#define listincreasement 10000
typedef int element;  // 自定义int类型element
typedef struct   //顺序表中的一个结点
{
    element *elem;
    int listsize;
    int length;
}Sqlist;
int initializer_list(Sqlist &L) ; //建表初始化
int creatnewlist(Sqlist &L, int n) ;   // 建立顺序表
void show(Sqlist &L) ;   //输出顺序表
int main()
{
    Sqlist L;
    int n;
    scanf("%d", &n);
    initializer_list(L);
    creatnewlist(L, n);
    show(L);
    return 0;
}
int initializer_list(Sqlist &L)  //建表初始化
{
    L.elem = (int *)malloc(sizeof(int));
    if(!L.elem) return -1;
    L.length = 0;
    L.listsize = list_size;
    return 0;
}
int creatnewlist(Sqlist &L, int n)  // 建立顺序表
{
    int i;
    L.elem = (int *)malloc(sizeof(int)*list_size);
    if(!L.elem) return -1;
    else
    {
        for(i = 0;i<n;i++)
        {
            scanf("%d", &L.elem[i]);
            L.length++;
        }
    }
    return 0;
}
void show(Sqlist &L)  //输出顺序表
{
    int i;
    for(i = 0;i<L.length;i++)
    {
        if(i==L.length-1) printf("%d\n", L.elem[i]);
        else printf("%d ", L.elem[i]);
    }
}

 


 
  • 50
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
建立顺序表的步骤如下: 1. 定义顺序表结构体。顺序表需要包含数据存储区和记录当前元素个数的变量。 ``` #define MAXSIZE 100 // 定义顺序表的最大容量 typedef struct { int data[MAXSIZE]; // 数据存储区 int length; // 当前元素个数 } SqList; // 定义顺序表结构体 ``` 2. 初始化顺序表。将顺序表的长度设置为0,表示当前没有元素。 ``` void InitList(SqList *list) { list->length = 0; // 初始化长度为0 } ``` 3. 插入元素。将新元素插入到顺序表的末尾,并更新长度。 ``` bool InsertList(SqList *list, int elem) { if (list->length >= MAXSIZE) { // 判断顺序表是否已满 return false; // 已满则无法插入 } list->data[list->length] = elem; // 将新元素插入到末尾 list->length++; // 更新长度 return true; } ``` 4. 删除元素。将要删除的元素后面的所有元素向前移动一个位置,并更新长度。 ``` bool DeleteList(SqList *list, int index) { if (index < 0 || index >= list->length) { // 判断删除位置是否合法 return false; // 不合法则无法删除 } for (int i = index; i < list->length - 1; i++) { // 将后面的元素向前移动一个位置 list->data[i] = list->data[i + 1]; } list->length--; // 更新长度 return true; } ``` 5. 查找元素。在顺序表中查找指定元素,并返回其位置。 ``` int SearchList(SqList *list, int elem) { for (int i = 0; i < list->length; i++) { // 遍历顺序表中的元素 if (list->data[i] == elem) { // 如果找到了指定元素 return i; // 返回其位置 } } return -1; // 没有找到则返回-1 } ``` 6. 修改元素。将顺序表中指定位置的元素修改为新元素。 ``` bool ModifyList(SqList *list, int index, int elem) { if (index < 0 || index >= list->length) { // 判断修改位置是否合法 return false; // 不合法则无法修改 } list->data[index] = elem; // 将元素修改为新元素 return true; } ``` 7. 输出顺序表。遍历顺序表中的元素,并输出到屏幕。 ``` void PrintList(SqList *list) { for (int i = 0; i < list->length; i++) { // 遍历顺序表中的元素 printf("%d ", list->data[i]); // 输出元素 } printf("\n"); // 换行 } ``` 通过以上步骤,就可以建立一个基本顺序表。在实际应用中,还需要根据具体的需求进行扩展和优化。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值