如何将线性表的基本操作在C语言中实现并优化为长尾词的?

2026-04-11 22:142阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计1175个文字,预计阅读时间需要5分钟。

如何将线性表的基本操作在C语言中实现并优化为长尾词的?

线性表的基本操作+实验内容:1. 编写线性表基本操作函数:(1)InitList(LIST L, int ms):初始化线性表;+(2)InsertList(LIST L, int item, int rc):向线性表指定位置插入元素;+(3)DeleteList1(LIST L, int item):删除线性表中的元素。


线序表的基本操作

实验内容:
1.编写线性表基本操作函数:
(1)InitList(LIST L,int ms),初始化线性表;
(2) InsertList(LIST L,int item,int rc):向线性表指定位置插入元素;
(3)DeleteList1(LISTL,intitem):删除指定元素值的线性表记录;
(4)DeleteList2(LIST
L,intrc):删除指定位置的线性表记录;
(5)FindList(LIST *L,int item):查找线性表中的元素;
(6)OutputList(LIST *L):输出线性表元素;
2.调用上述函数实现下列操作,操作步骤如下:
(1)初始化线性表;
(2)调用插入函数建立一个线性表;
(3)在线性表中寻找指定的元素;
(4)在线性表中删除指定值的元素;
(5)在线性表中删除指定位置的元素;
(6)遍历并输出线性表。
注:每完成一个步骤,必须及时输出线性表元素,便于观察结果。

如何将线性表的基本操作在C语言中实现并优化为长尾词的?

源代码:

#include<stdio.h> #include<stdlib.h> #include<malloc.h> struct LinearList /*定义线性表结构*/ { int *list; /* 存线性表元素 */ int size; /* 存线性表长度 */ int MaxSize; /* 存list数组元素个数 */ }; typedef struct LinearList LIST; void InitList( LIST *L, int ms ) /* 初始化线性表 */ { if( (L->list = (int *) malloc( ms * sizeof(int) ) ) == NULL ) { printf( "内存申请错误!\n" ); exit( 1 ); } L->size = 0; L->MaxSize = ms; } int InsertList( LIST *L, int item, int rc ) /* item:记录值 rc:插入位置 */ { int i; if( L->size >= L->MaxSize ) /* 线性表已满 */ return -1; if( rc < 0 ) /* 插入位置为 0 */ rc = 0; if( rc > L->size ) rc = L->size; for( i = L->size - 1; i >= rc; i-- ) /* 将线性表元素后移 */ L->list[i+1] = L->list[i]; L->list[rc] = item; L->size ++; return 0; } void OutputList( LIST *L ) /* 输出线性表元素 */ { int i; for( i = 0; i < L->size; i++ ) printf( "%d ", L->list[i] ); printf( "\n" ); } int FindList( LIST *L, int item ) /* 返回 >=0 为元素位置 ?1 没找到 */ { int i; for( i = 0; i < L->size; i++ ) if( item == L->list[i] ) /* 找到相同的元素,返回位置 */ return i; return -1; /* 没找到 */ } int DeleteList1( LIST *L, int item ) /* 删除指定元素值的线性表记录,返回>=0:删除成功 */ { int i, n; for( i = 0; i < L->size; i++ ) if( item == L->list[i] ) /* 找到相同的元素 */ break; if( i < L->size ) { for( n = i; n < L->size - 1; n++ ) L->list[n] = L->list[n+1]; L->size --; return i; } return -1; } int DeleteList2( LIST *L, int rc ) /* 删除指定位置的线性表记录,返回0:删除成功 */ { int i, n; if( rc < 0 || rc >= L->size )/* 记录位置不在线性表范围内,返回错误 */ return -1; for( n = rc; n < L->size - 1; n++ ) L->list[n] = L->list[n+1]; L->size --; return 0; } void main() { LIST LL; int i, r; printf( "list addr=%p\tsize=%d\tMaxSize=%d\n", LL.list, LL.size, LL.MaxSize ); InitList( &LL, 100 ); printf( "list addr=%p\tsize=%d\tMaxSize=%d\n", LL.list, LL.size, LL.MaxSize ); while( 1 ) { printf( "请输入元素值,输入0结束插入操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; printf( "请输入插入位置:" ); scanf( "%d", &r ); InsertList( &LL, i, r-1 ); printf( "线性表为: " ); OutputList( &LL ); } while( 1 ) { printf( "请输入查找元素值,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; r = r = FindList( &LL, i ); if( r < 0 ) printf( "没找到\n" ); else printf( "有符合条件的元素,位置为:%d\n", r+1 ); } while( 1 ) { printf( "请输入删除元素值,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; r = r = DeleteList1( &LL, i ); if( r < 0 ) printf( "没找到\n" ); else { printf( "有符合条件的元素,位置为:%d\n线性表为:", r+1 ); OutputList( &LL ); } } while( 1 ) { printf( "请输入删除元素位置,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &r ); if( r == 0 ) break; i = i = DeleteList2( &LL, r-1 ); if( i < 0 ) printf( "位置越界\n" ); else { printf( "线性表为:" ); OutputList( &LL ); } } }

运行结果:

题型来源:清华大学出版社 数据结构第五版(C语言版) 邓文华主编

本文共计1175个文字,预计阅读时间需要5分钟。

如何将线性表的基本操作在C语言中实现并优化为长尾词的?

线性表的基本操作+实验内容:1. 编写线性表基本操作函数:(1)InitList(LIST L, int ms):初始化线性表;+(2)InsertList(LIST L, int item, int rc):向线性表指定位置插入元素;+(3)DeleteList1(LIST L, int item):删除线性表中的元素。


线序表的基本操作

实验内容:
1.编写线性表基本操作函数:
(1)InitList(LIST L,int ms),初始化线性表;
(2) InsertList(LIST L,int item,int rc):向线性表指定位置插入元素;
(3)DeleteList1(LISTL,intitem):删除指定元素值的线性表记录;
(4)DeleteList2(LIST
L,intrc):删除指定位置的线性表记录;
(5)FindList(LIST *L,int item):查找线性表中的元素;
(6)OutputList(LIST *L):输出线性表元素;
2.调用上述函数实现下列操作,操作步骤如下:
(1)初始化线性表;
(2)调用插入函数建立一个线性表;
(3)在线性表中寻找指定的元素;
(4)在线性表中删除指定值的元素;
(5)在线性表中删除指定位置的元素;
(6)遍历并输出线性表。
注:每完成一个步骤,必须及时输出线性表元素,便于观察结果。

如何将线性表的基本操作在C语言中实现并优化为长尾词的?

源代码:

#include<stdio.h> #include<stdlib.h> #include<malloc.h> struct LinearList /*定义线性表结构*/ { int *list; /* 存线性表元素 */ int size; /* 存线性表长度 */ int MaxSize; /* 存list数组元素个数 */ }; typedef struct LinearList LIST; void InitList( LIST *L, int ms ) /* 初始化线性表 */ { if( (L->list = (int *) malloc( ms * sizeof(int) ) ) == NULL ) { printf( "内存申请错误!\n" ); exit( 1 ); } L->size = 0; L->MaxSize = ms; } int InsertList( LIST *L, int item, int rc ) /* item:记录值 rc:插入位置 */ { int i; if( L->size >= L->MaxSize ) /* 线性表已满 */ return -1; if( rc < 0 ) /* 插入位置为 0 */ rc = 0; if( rc > L->size ) rc = L->size; for( i = L->size - 1; i >= rc; i-- ) /* 将线性表元素后移 */ L->list[i+1] = L->list[i]; L->list[rc] = item; L->size ++; return 0; } void OutputList( LIST *L ) /* 输出线性表元素 */ { int i; for( i = 0; i < L->size; i++ ) printf( "%d ", L->list[i] ); printf( "\n" ); } int FindList( LIST *L, int item ) /* 返回 >=0 为元素位置 ?1 没找到 */ { int i; for( i = 0; i < L->size; i++ ) if( item == L->list[i] ) /* 找到相同的元素,返回位置 */ return i; return -1; /* 没找到 */ } int DeleteList1( LIST *L, int item ) /* 删除指定元素值的线性表记录,返回>=0:删除成功 */ { int i, n; for( i = 0; i < L->size; i++ ) if( item == L->list[i] ) /* 找到相同的元素 */ break; if( i < L->size ) { for( n = i; n < L->size - 1; n++ ) L->list[n] = L->list[n+1]; L->size --; return i; } return -1; } int DeleteList2( LIST *L, int rc ) /* 删除指定位置的线性表记录,返回0:删除成功 */ { int i, n; if( rc < 0 || rc >= L->size )/* 记录位置不在线性表范围内,返回错误 */ return -1; for( n = rc; n < L->size - 1; n++ ) L->list[n] = L->list[n+1]; L->size --; return 0; } void main() { LIST LL; int i, r; printf( "list addr=%p\tsize=%d\tMaxSize=%d\n", LL.list, LL.size, LL.MaxSize ); InitList( &LL, 100 ); printf( "list addr=%p\tsize=%d\tMaxSize=%d\n", LL.list, LL.size, LL.MaxSize ); while( 1 ) { printf( "请输入元素值,输入0结束插入操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; printf( "请输入插入位置:" ); scanf( "%d", &r ); InsertList( &LL, i, r-1 ); printf( "线性表为: " ); OutputList( &LL ); } while( 1 ) { printf( "请输入查找元素值,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; r = r = FindList( &LL, i ); if( r < 0 ) printf( "没找到\n" ); else printf( "有符合条件的元素,位置为:%d\n", r+1 ); } while( 1 ) { printf( "请输入删除元素值,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &i ); if( i == 0 ) break; r = r = DeleteList1( &LL, i ); if( r < 0 ) printf( "没找到\n" ); else { printf( "有符合条件的元素,位置为:%d\n线性表为:", r+1 ); OutputList( &LL ); } } while( 1 ) { printf( "请输入删除元素位置,输入0结束查找操作:" ); fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( "%d", &r ); if( r == 0 ) break; i = i = DeleteList2( &LL, r-1 ); if( i < 0 ) printf( "位置越界\n" ); else { printf( "线性表为:" ); OutputList( &LL ); } } }

运行结果:

题型来源:清华大学出版社 数据结构第五版(C语言版) 邓文华主编