当前位置: 首页> 教育> 就业 > C 语言动态顺序表

C 语言动态顺序表

时间:2025/7/12 7:12:14来源:https://blog.csdn.net/qq_68495605/article/details/140699626 浏览次数:0次

test.h

#ifndef _TEST_H
#define _TEST_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef int data_type;// 定义顺序表结构体
typedef struct List{data_type *data; // 顺序表数据int size; // 顺序表当前长度int count; // 顺序表容量
}list;typedef enum{OK,LIST_EMPTY,LIST_FULL,INDEX_ERROR,}RETURNVALUE;list *create_list(void);int list_insert(list *plist, int index, data_type data);int list_show(list *plist);#endif

main.c

#include "../include/test.h"int main()
{int retval = 0;list *plist = create_list();retval = list_insert(plist, 0, 1);retval = list_insert(plist, 1, 2);retval = list_insert(plist, 2, 3);retval = list_insert(plist, 1, 4);retval = list_show(plist);return 0;
}

crud.c

#include "../include/test.h"// 创建动态顺序表
list *create_list(void)
{int list_size = 0; // 初始化顺序表大小list *plist = (list *)malloc(sizeof(list)); // 申请内存空间if(plist == NULL){perror("plist malloc error!");return NULL;}memset(plist, 0, sizeof(list)); // 清零// 手动输入顺序表大小printf("请输入顺序表大小:");scanf("%d", &list_size);// 申请内存空间plist->data = (data_type *)malloc(sizeof(data_type) * list_size);// 初始化顺序表的大小plist->size = list_size;return plist; // 返回顺序表指针
}int list_insert(list *plist, int index, data_type data)
{// 入参检测if(plist == NULL){return LIST_EMPTY;}// 检测顺序表是否已满if(plist->count == plist->size){return LIST_FULL;}// 检测插入位置是否合法if(index < -1 || index > plist->count){return INDEX_ERROR;}// 插入操作:尾插if(index == -1){plist->data[plist->count] = data;plist->count++;return OK;}// 移动元素,实际上在用户按规律顺序插入元素的时候,不会调用此循环,而是直接// 执行 plist->data[index] = data; 的操作for(int i = plist->count; i > index; i--){printf("for(int i = plist->count; i > index; i--){\n");plist->data[i] = plist->data[i - 1];}// 插入元素plist->data[index] = data;// 顺序表元素个数加一plist->count++;return OK;
}int list_show(list *plist)
{if(plist == NULL || plist->count == 0){return LIST_EMPTY;}// 遍历顺序表for(int i = 0; i < plist->count; i++){printf("%d\t\n", plist->data[i]);}putchar(10);return OK;
}

关键字:C 语言动态顺序表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: