《数据结构实验与实训教程(第4版)》程序代码(2)

2020-10-30 12:10

rc = 0;

if( 4 ) rc = L->size;

for( i = L->size - 1; i >= rc; i-- ) /* 将线性表元素后移 */ 5 L->list[rc] = item; L->size ++; return 0;

}

 

void OutputList( LIST *L ) /* 输出线性表元素 */ { int i; for( i = 0; 6 i++ ) printf( printf( }

 

int FindList( LIST *L, int item ) /* 返回 >=0 为元素位置 -1 没找到 */ { int i; for( i = 0; i < L->size; i++ ) if( 7 ) /* 找到相同的元素,返回位置 */ 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;

 

}

 

5

return -1; }

int DeleteList2( LIST L, int rc ) /* 删除指定位置的线性表记录 */ {

8 /*编写删除指定位置的线性表记录子程序*/ }

程序2:题2

void main() { LIST LL;

int i, r; printf( ddr=%p\tsize=%d\tMaxSize=%d\nLL.list, LL.size, LL.MaxSize ); InitList( &LL, 100 ); printf( ddr=%p\tsize=%d\tMaxSize=%d\nLL.list, LL.size, LL.MaxSize ); while( 1 ) { printf( 请输入元素值,输入0结束插入操作: fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( if( 1 ) break; printf( 请输入插入位置:

 

scanf(

InsertList( 2 ); printf( 线性表为: 3

}

while( 1 ) { printf( 请输入查找元素值,输入0结束查找操作:

fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( if( i == 0 ) break;

r = 4 if( r < 0 ) printf( 没找到\n else

 

6

printf( 有符合条件的元素,位置为:%d\n}

while( 1 ) { printf( 请输入删除元素值,输入0结束查找操作: fflush( stdin ); /* 清空标准输入缓冲区 */

scanf( if( i == 0 ) break;

r = 5 if( r < 0 ) printf( 没找到\n else { printf( 有符合条件的元素,位置为:%d\n线性表为: OutputList( &LL ); } } while( 1 ) { printf( 请输入删除元素位置,输入0结束查找操作: fflush( stdin ); /* 清空标准输入缓冲区 */ scanf( if( r == 0 ) break;

i = 6 if( i < 0 ) printf( 位置越界\n else { printf( 线性表为: OutputList( &LL ); } } }

程序4:题4 #define X 10

#define Y 30 #define N 20

int A[N]={ 2, 5, 15, 30, 1, 40, 17, 50, 9, 21, 32, 8, 41, 22, 49, 31, 33, 18, 80, 5 };

 

7

#include

void del( int *A, int *n, int x, int y ) { int i, j; for( i = j = 0; i < *n; i++ ) if( A[i] > y || A[i] < x ) // 不在x到y之间,则保留 1 ; 2 = j; }

 

void output( int *A, int n ) { int i; printf( 数组有%d个元素:\n for( i = 0; i < n; i++ ) { printf( if( ( i + 1 ) % 10 == 0 ) printf( }

printf( }

void main() {

int n; n = N; output( A, n ); 3 ; output( A, n ); }

8

实验2 链表的基本操作

四、参考程序

程序1:题1 链表基本操作函数 #include #include typedef struct list { int data;

struct list *next; }LIST;

 

void InitList( LIST **p ) /* 初始化链表 */ {

1 /*编写初始化链表子程序*/ }

void InsertList1( LIST **p, int item, int rc ) /* 向链表指定位置[rc]插入元素[item] */ {

int i; LIST *u, *q, *r;

/* u:新结点 q:插入点前驱 r:插入点后继 */

u = ( LIST * )malloc( sizeof(LIST) ); u->data = item;

for( i = 0, r = *p ; 2 ; i++ ) { q = r; r = r->next; }

if( 3 ) /* 插入首结点或p为空指针 */ *p = u; else

4

u->next = r; }

void InsertList2( LIST **p, int item )

/* 向有序链表[p]插入键值为[item]的结点 */

9

 

 


《数据结构实验与实训教程(第4版)》程序代码(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:翠园中学高中新课程实验工作方案二稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: