软件技术基础实验上机整理

上传人:liy****000 文档编号:118768708 上传时间:2019-12-25 格式:DOCX 页数:41 大小:44.46KB
返回 下载 相关 举报
软件技术基础实验上机整理_第1页
第1页 / 共41页
软件技术基础实验上机整理_第2页
第2页 / 共41页
软件技术基础实验上机整理_第3页
第3页 / 共41页
软件技术基础实验上机整理_第4页
第4页 / 共41页
软件技术基础实验上机整理_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《软件技术基础实验上机整理》由会员分享,可在线阅读,更多相关《软件技术基础实验上机整理(41页珍藏版)》请在金锄头文库上搜索。

1、1、 顺序表:/定义#define MAXNUM xxxtypedef struct list_type_telemtype data MAXNUM ;int length;list_type;list_type table;/初始化顺序表list_type * init_table()list_type *table;table=(list_type*)malloc(sizeof(list_type);return table;/创建顺序表并输入初始元素内容void creat_table(list_type* table) int i,elem; table-length=0; print

2、f(please input datas of the tablen); for(i=0;idatai = elem; table-length+; /将制定元素放入到顺序表的末尾,添加新元素int add_table(table_t * table, int data) if(table-length=MAXNUM)return -1;table-datatable-length=data;table-length+;return 0;/将指定元素插入到顺序表的指定位置之前int insert_table(table_t * table, element_t data, int locati

3、on)int j; location=location-1;if(locationtable-length )location=table-length;table-datalocation=data;else for(j=table-length-1;j=location;j-)table-dataj+1=table-dataj;table-datalocation=data;table-length+;return 0;/将指定元素插入到指定位置void insert_table(table_type* table,int location,int new_node)int i;if(ta

4、ble-length=MAXNUM)printf(The table is fall.n);if(locationtable-length+1)printf(Location error.n);for(i=table-length-1;i=location-1;i-)table-datai+1=table-datai;table-datai+1=new_node;table-length+;/将指定位置元素删除void delete_table(table_type* table,int location)int i;if(table-length1) Printf(its empty!);e

5、lse if(locationtable-length)printf(Location error.n); elsefor(i=location;ilength;i+)table-datai-1=table-datai; table-length-;/将顺序表的内容输出到屏幕上void show_table(table_type* table)int i; printf(These %d records are:n,table-length);if(table-length=0)printf(Its empty!);for(i=0;ilength;i+)printf(%4d,table-dat

6、ai);printf(nThe length of the table is %dn,table-length); /实现顺序表在原表上反序void change_table(list_type* table)int i;int temp;for(i=0;ilength/2;i+)temp=table-datai;table-datai=table-datatable-length-1-i;table-datatable-length-1-i=temp;/将指定元素按照从小到大顺序插入到顺序表中void insert_table_by_order(table_t * table, int da

7、ta) int location,j;for(location=0;locationlength;location+)if(table-datalocationdata)break; for(j=table-length-1;j=location;j-) table-dataj+1=table-dataj; table-datalocation=data;table-length=table-length+1;/删除顺序表中指定关键字的元素int delete_table(table_t * table, int data)int i=0,j=0; for(i=0;ilength;i+)if(

8、table-datai=data)break;if(i=table-length)return -1;for(j=i;jlength;j+) table-dataj=table-dataj+1; table-length-;return 0;/删除顺序表中小于某个指定值的所有元素void delete_table_below(table_t * table, int x) int i=0,j;while ( i length ) if ( table-datai x ) for ( j = i; jlength; j+ ) table-dataj=table-dataj+1; table-le

9、ngth-; else i+;/删除顺序表中所有的负数(一趟)void delete_negative(list_type *lp)int i,j,n,temp;n = lp-length;for (i = j = 0; i + j datai = 0)i+;if (lp-datai + j length-;if (lp-datai + j = 0 & i + j datai + j;lp-datai + j = lp-datai;lp-datai = temp;i+;/Main函数举例:将顺序表反序。void main( )list_type *table;table=init_table(

10、);creat_table(table);printf(nBefore change:n);showlist(table);change_table(table);printf(nAfter change:n);showlist(table);2、 链表:/定义 链点typedef struct node_typeint data;struct node_type *next;node_t;/定义 链表typedef struct link_typenode_t *head;node_t *tail;/很少用int length;link_t;/创建链表link_t * creat_link(

11、)link_t *link;node_t *new_node,*p;int data,i;link=(link_t*)malloc(sizeof(link_t);link-head=NULL;link-length=0;printf(请输入整数,输入0结束:n);scanf(%d,&data);while(1)/增加链点直到输入0结束 if(data=0)break; new_node=(node_t*)malloc(sizeof(node_t); new_node-data=data; new_node-next=NULL; if(link-lengthhead=new_node;elsep=link-head;for(i=1;ilength;i+)p=p-next;p-next=new_node;link-length+;scanf(%d,&data);return link;/创建链表(有表尾)link_t * creat_link()link_t *link;node_t *new_node;int data;link=(li

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号