⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list.txt

📁 数据结构课程设计之线性表的基础操作
💻 TXT
字号:
#include <stdlib.h> 
#include <stdio.h> 

#define MAXSIZE 100 
typedef struct{ 
char elem[MAXSIZE]; //用于储存线性表中的元素,元素类型为char; 
int len; //线性表的当前表长,即elem数组中已经储存多少个char. 
}SqList; 



int ListInsert_Sq(SqList *L, int i, char c) //参数i:插入的位置(数组elem中的位置),参数c:要插入的值 
{ 
if (i<1 || i>L->len+1) { 
printf("\n插入位置不合理!"); 
return 0; //判断i的值,若小于1或者大于表长加1,则位置不合理 
} 
if (L->len == MAXSIZE-1) return -1; //若当前表长等于elem的最大储存量减1,则无法插入 

for(int j = L->len; j >= i; --j) 
{ 
L->elem[j+1] = L->elem[j]; //插入位置之后的元素依次后移,且应该先移动最后面的元素 
} 
L->elem[i] = c; 
++L->len; //插入新元素后,当前表长应该加1 
printf("您成功插入了:%c\n", c); 
return 1; 
} 




int ListDelete_Sq(SqList *L, int i) //删除elem中位置为i的元素,若能够删除,则后面元素依次左移 
{ 
if (i<1 || i>L->len) return 0; //不合理的位置,无法进行删除 
if (L->len == 0) return -1; //线性表为空,无法进行删除 
for (int j = i; j <= L->len-1; j++) 
{ 
L->elem[j] = L->elem[j+1]; //从最前面一个元素开始依次左移,直到最后一位元素结束 
} 
--L->len; //被删除一个元素后,当前表长减1 
return 1; 
} 




int PrintOut(SqList *L) //打印线性表中的元素 
{ 
if (L->len == 0) return 0; //当前表长为0,所以线性表为空,不能做打印操作 
printf("线性表中元素为:"); 
for (int j = 1; j < L->len; j ++) //j为循环变量,遍历数组0位置到L->Len-1这个位置,依次打印 
{ 
printf("%c", L->elem[j]); 
} 
} 



int main() 
{ 
SqList *s = (SqList *)malloc(sizeof(SqList)); 
s->len = 0; 
char NUM[] = "0123456789"; 
for(int i = 1; i < sizeof(NUM); i ++) 
{ 
ListInsert_Sq(s, i, NUM[i]); 
} 
PrintOut(s); 
printf("\n");
ListDelete_Sq(s,2); 
ListDelete_Sq(s,4); 
ListInsert_Sq(s, 2, 'u'); 
PrintOut(s); 
 
free(s); 
getchar(); 
return 0; 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -