main.c
来自「1、链接存储方法 链接方式存储的线性表简称为链表(Linked List)」· C语言 代码 · 共 116 行
C
116 行
/*
* 作者:antigloss
* 最后修改:05-8-31 19:30
* 蚂蚁的 C/C++ 标准编程
* cpp.ga-la.com
*/
#include <stdio.h>
#include "header/slist.h"
#include "header/funs.h"
int main( void )
{
LinkList A, B;
unsigned i = 0, j = 0;
/* 形成链表 */
printf( "请为表 A 输入数据:" );
if ( !( A = FormList() ) ) {
error( "Not Enough Memory!" );
}
printf( "请为表 B 输入数据:" );
if ( !( B = FormList2() ) ) {
error( "Not Enough Memory!" );
}
/* 显示数据 */
printf( "表 A:" );
Disp( A );
printf( "表 B:" );
Disp( B );
/* 插入数据 */
printf( "请问您要在表 A 的哪个位置插入数据:" );
/* 输入越界,非法字符或者链表不存在都将导致插入失败 */
scanf( "%u", &i );
flush_stdin(); /* 清空输入缓冲区 */
if ( !Insert( A, i ) ) {
printf( "%s\n", "插入失败!" );
}
printf( "请问您要在表 B 的哪个位置插入数据:" );
scanf( "%u", &i );
flush_stdin();
if ( !Insert( B, i ) ) {
printf( "%s\n", "插入失败!" );
}
printf("表 A:");
Disp( A );
printf("表 B:");
Disp( B );
/* 冒泡排序 */
Bubble( A );
Bubble( B );
printf( "表 A 排序后:" );
Disp( A );
printf( "表 B 排序后:" );
Disp( B );
/* 删除数据 */
i = j = 0;
printf( "请问您要从表 A 的哪个位置开始删除数据:" );
scanf( "%u", &i );
flush_stdin();
printf( "请问您要删除几个元素:" );
scanf( "%u", &j );
flush_stdin();
Delete( A, i, j );
i = j = 0;
printf( "请问您要从表 B 的哪个位置开始删除数据:" );
scanf( "%u", &i );
flush_stdin();
printf( "请问您要删除几个元素:" );
scanf( "%u", &j );
flush_stdin();
Delete( B, i, j );
printf( "表A:" );
Disp( A );
printf( "表B:" );
Disp( B );
Merge( A, B ); /* 合并有序链表 */
printf( "合并链表后:" );
Disp( A );
/* 前 m 个结点和后 n 个结点的互换 */
i = 0;
printf( "前 m 个结点和后 n 个结点的互换。请输入一个整数:" );
scanf( "%u", &i );
flush_stdin();
Exchange( A, i );
printf( "前 m 个结点和后 n 个结点的互换后:" );
Disp( A );
/* 删除单链表中重复的数据元素 */
Purge( A );
printf( "删除重复元素后:" );
Disp( A );
/* 释放内存 */
Destroy( A );
puts( "请按回车退出..." );
getchar();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?