教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

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

来源:网络收集 时间:2026-09-03
导读: 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

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( \addr=%p\\tsize=%d\\tMaxSize=%d\\n\LL.list, LL.size, LL.MaxSize ); InitList( &LL, 100 ); printf( \addr=%p\\tsize=%d\\tMaxSize=%d\\n\LL.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

…… 此处隐藏:375字,全部文档内容请下载后查看。喜欢就下载吧 ……
《数据结构实验与实训教程(第4版)》程序代码(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/414257.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)