?? list.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 + -