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

输入数据的个数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]);
    }
}

 


 
  • 48
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 好的,以下是实现顺序表基本操作的代码: ```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 // 定义顺序表的最大长度 typedef int ElemType; // 定义顺序表存储的元素类型 typedef struct { ElemType data[MAXSIZE]; // 存储元素的数组 int length; // 当前顺序表的长度 } SqList; // 定义顺序表的结构体 // 初始化一个空的顺序表 void InitList(SqList *L) { L->length = 0; // 将顺序表的长度初始化为0 } // 建立一个含有n个元素的顺序表 void CreateList(SqList *L, int n) { if (n > MAXSIZE) { // 如果元素个数超过了最大长度,则无法建立顺序表 printf("Error: The number of elements is too large!\n"); return; } printf("Please input %d elements: ", n); for (int i = 0; i < n; i++) { scanf("%d", &L->data[i]); // 逐个输入元素 } L->length = n; // 更新顺序表的长度 printf("List created successfully!\n"); } // 求顺序表的长度 int Length(SqList L) { return L.length; // 直接返回顺序表的长度 } // 获取第i个元素的值 ElemType GetElem(SqList L, int i) { if (i < 1 || i > L.length) { // 如果i的值超出了顺序表的范围,则返回错误 printf("Error: Index out of range!\n"); return -1; } return L.data[i - 1]; // 返回第i个元素的值 } // 在顺序表的第i个位置插入元素e void InsertElem(SqList *L, int i, ElemType e) { if (i < 1 || i > L->length + 1) { // 如果i的值超出了顺序表的范围,则返回错误 printf("Error: Index out of range!\n"); return; } if (L->length >= MAXSIZE) { // 如果顺序表已满,则无法插入元素 printf("Error: The list is full!\n"); return; } for (int j = L->length; j >= i; j--) { // 将i及其后面的元素依次后移 L->data[j] = L->data[j - 1]; } L->data[i - 1] = e; // 在i的位置插入元素e L->length++; // 更新顺序表的长度 printf("Element inserted successfully!\n"); } // 删除顺序表中第i个元素 void DeleteElem(SqList *L, int i) { if (i < 1 || i > L->length) { // 如果i的值超出了顺序表的范围,则返回错误 printf("Error: Index out of range!\n"); return; } for (int j = i; j < L->length; j++) { // 将i后面的元素依次前移 L->data[j - 1] = L->data[j]; } L->length--; // 更新顺序表的长度 printf("Element deleted successfully!\n"); } // 输出顺序表中的所有元素 void PrintList(SqList L) { printf("The elements of the list are: "); for (int i = 0; i < L.length; i++) { printf("%d ", L.data[i]); } printf("\n"); } // 主函数 int main() { SqList L; int choice, n, i; ElemType e; while (1) { printf("Please choose the operation you want to perform:\n"); printf("1. InitList\n"); printf("2. CreateList\n"); printf("3. Length\n"); printf("4. GetElem\n"); printf("5. InsertElem\n"); printf("6. DeleteElem\n"); printf("7. PrintList\n"); printf("0. Exit\n"); scanf("%d", &choice); switch (choice) { case 1: InitList(&L); printf("List initialized successfully!\n"); break; case 2: printf("Please input the number of elements: "); scanf("%d", &n); CreateList(&L, n); break; case 3: printf("The length of the list is: %d\n", Length(L)); break; case 4: printf("Please input the index of the element you want to get: "); scanf("%d", &i); e = GetElem(L, i); if (e != -1) { printf("The element is: %d\n", e); } break; case 5: printf("Please input the index and the element you want to insert: "); scanf("%d%d", &i, &e); InsertElem(&L, i, e); break; case 6: printf("Please input the index of the element you want to delete: "); scanf("%d", &i); DeleteElem(&L, i); break; case 7: PrintList(L); break; case 0: printf("Program exited successfully!\n"); exit(0); default: printf("Error: Invalid choice!\n"); } } return 0; } ``` 使用菜单方式可以让用户选择需要进行的操作,方便实用。 ### 回答2: 实现顺序表基本操作: (1) 构造空的顺序表: ```python def initList(): return [] ``` (2) 建立含有若干数据元素的顺序表: ```python def insertElement(lst, data): lst.append(data) def createList(): lst = initList() n = int(input("请输入元素个数:")) for i in range(n): data = int(input("请输入第{}个元素:".format(i+1))) insertElement(lst, data) return lst ``` (3) 求表长: ```python def getLength(lst): return len(lst) ``` (4) 获取第i个元素的值: ```python def getElement(lst, i): return lst[i-1] ``` (5) 数据元素插入: ```python def insertData(lst, i, data): lst.insert(i-1, data) ``` (6) 数据元素删除: ```python def deleteData(lst, i): del lst[i-1] ``` (7) 输出顺序表: ```python def printList(lst): print("顺序表内容为:") for data in lst: print(data, end=" ") print() ``` 主程序调用上述函数并使用菜单: ```python lst = [] while True: print("1. 构造空的顺序表") print("2. 建立含有若干数据元素的顺序表") print("3. 求表长") print("4. 获取第i个元素的值") print("5. 插入数据元素") print("6. 删除数据元素") print("7. 输出顺序表") print("0. 退出") choice = int(input("请输入您的选择:")) if choice == 1: lst = initList() elif choice == 2: lst = createList() elif choice == 3: length = getLength(lst) print("顺序表的长度为:", length) elif choice == 4: i = int(input("请输入元素位置:")) element = getElement(lst, i) print("第{}个元素的值为:{}".format(i, element)) elif choice == 5: i = int(input("请输入插入位置:")) data = int(input("请输入插入的值:")) insertData(lst, i, data) elif choice == 6: i = int(input("请输入删除位置:")) deleteData(lst, i) elif choice == 7: printList(lst) elif choice == 0: break else: print("输入有误,请重新输入!") ``` 以上就是实现顺序表基本操作的解答。 ### 回答3: 实现顺序表基本操作: ```python # 1. 构造空的顺序表 def initList(): return [] # 2. 建立含有若干数据元素的顺序表 def createList(): n = int(input("请输入顺序表的长度:")) lst = [] for i in range(n): value = input("请输入第{}个元素的值:".format(i+1)) lst.append(value) return lst # 3. 求表长 def length(lst): return len(lst) # 4. 获取第i个元素的值 def getElem(lst, i): if i < 1 or i > len(lst): return "索引越界" return lst[i-1] # 5. 数据元素插入 def insertElem(lst, i, value): if i < 1 or i > len(lst)+1: return "索引越界" lst.insert(i-1, value) return lst # 6. 数据元素删除 def deleteElem(lst, i): if i < 1 or i > len(lst): return "索引越界" lst.pop(i-1) return lst # 7. 输出顺序表 def printList(lst): print("顺序表的元素为:", end="") for elem in lst: print(elem, end=" ") print("") # 主程序 def main(): lst = initList() while True: print("请选择操作:") print("1. 建立含有若干数据元素的顺序表") print("2. 求表长") print("3. 获取第i个元素的值") print("4. 数据元素插入") print("5. 数据元素删除") print("6. 输出顺序表") print("0. 退出") choice = input("请输入操作编号:") if choice == "1": lst = createList() elif choice == "2": print("顺序表的长度为:", length(lst)) elif choice == "3": i = int(input("请输入要获取的元素的位置:")) print("第{}个元素的值为:{}".format(i, getElem(lst, i))) elif choice == "4": i = int(input("请输入要插入的位置:")) value = input("请输入要插入的元素的值:") lst = insertElem(lst, i, value) elif choice == "5": i = int(input("请输入要删除的元素的位置:")) lst = deleteElem(lst, i) elif choice == "6": printList(lst) elif choice == "0": break else: print("输入无效,请重新选择") if __name__ == '__main__': main() ``` 以上是一个使用Python语言实现顺序表基本操作的示例,可以根据需要进行修改。在主程序中,根据用户选择调用不同的函数完成操作,每次操作完成后重新显示菜单以供下一次选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值