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

📄 00.txt

📁 该程序利用C语言实现了线性表的插入
💻 TXT
字号:
#include "stdio.h"
#include "malloc.h"
//#include  "string.h"

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

struct SqList

{

 int *elem;

 int length;

 int listsize;

};
struct SqList l1;

int InitList_Sq(struct SqList &L) {  // 算法2.3
  // 构造一个空的线性表L。
  L.elem = (int*)malloc(LIST_INIT_SIZE*sizeof(int));
  if (!L.elem) return -2;        // 存储分配失败
  L.length=0;                  // 空表长度为0
  L.listsize=LIST_INIT_SIZE;
  printf("the empty list is:");// 初始存储容量
   printf("%d",L.listsize);
   printf("\n");
   return 1;
 
} // InitList_Sq

int ListInsert_Sq(struct SqList &L, int i, int e) {  // 算法2.4
  // 在顺序线性表L的第i个元素之前插入新的元素e,
  // i的合法值为1≤i≤ListLength_Sq(L)+1
  int *p;
  if (i < 1 || i > L.length+1) return 0;  // i值不合法
  if (L.length >= L.listsize) {   // 当前存储空间已满,增加容量
    int *newbase = (int *)realloc(L.elem,
                  (L.listsize+LISTINCREMENT)*sizeof (int));
    if (!newbase) return -2;   // 存储分配失败
    L.elem = newbase;             // 新基址
    L.listsize += LISTINCREMENT;  // 增加存储容量
  }
  int *q = &(L.elem[i-1]);   // q为插入位置
  for (p = &(L.elem[L.length-1]); p>=q; --p) *(p+1) = *p;
                                  // 插入位置及之后的元素右移
  *q = e;       // 插入e
  ++L.length;   // 表长增1
  return 1;
} // ListInsert_Sq
void main()

{
	int i,e;
    InitList_Sq(l1);
   for( i=1;i<=6;i++)
{  
	int j;
	scanf("%d",&j);
	ListInsert_Sq(l1,i,j);           //函数的调用
	printf("%3d",l1.elem[i-1]);
 }
    printf("\n");

    ListInsert_Sq(l1,3,3);
    for(i=1;i<=l1.length;i++)
    printf("%3d",l1.elem[i-1]);
    printf("\n");
	printf("线性表的插入创建成功!");
  printf("\n");

}

⌨️ 快捷键说明

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