自学考试计算机系列课程
实践性环节实验报告本
课程名称 数据结构 实验学期 2010.9 至 2011.7 学年 第 2 学期 年级 二年级 专业 通信工程 学生姓名 肖华新 学号 030409301756 指导教师 涂凤华 实验最终成绩
重庆大学计算机学院制
数据结构实验报告
实验一、单链表的插入和删除
一、目的
了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。Dfgfgdg ertgfh 二、要求:
建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 三、程序源代码 #include\#include\#include\#include\
typedef struct node //定义结点 {
char data[10]; //结点的数据域为字符串 struct node *next; //结点的指针域 }ListNode;
typedef ListNode * LinkList; // 自定义LinkList单链表类型 LinkList CreatListR1(); //函数,用尾插入法建立带头结点的单链表
ListNode *LocateNode(); //函数,按值查找结点 void DeleteList(); //函数,删除指定值的结点
2
数据结构实验报告
void printlist(); //函数,打印链表中的所有值 void DeleteAll(); //函数,删除所有结点,释放内存 //==========主函数============== void main() {
char ch[10],num[10]; LinkList head;
head=CreatListR1(); //用尾插入法建立单链表,返回头指针 printlist(head); //遍历链表输出其值
printf(\Delete node (y/n):\输入“y”或“n”去选择是否
删除结点
scanf(\
if(strcmp(num,\ printf(\
scanf(\ //输入要删除的字符串 DeleteList(head,ch); printlist(head); }
DeleteAll(head); //删除所有结点,释放内存 }
//==========用尾插入法建立带头结点的单链表=========== LinkList CreatListR1(void)
3
数据结构实验报告
{
char ch[10];
LinkList head=(LinkList)malloc(sizeof(ListNode)); //生成头结点
ListNode *s,*r,*pp; r=head; r->next=NULL;
printf(\输入“#”代表输入结束 printf(\
scanf(\输入各结点的字符串 while(strcmp(ch,\
pp=LocateNode(head,ch); //按值查找结点,返回结点指针 if(pp==NULL) { //没有重复的字符串,插入到链表中 s=(ListNode *)malloc(sizeof(ListNode)); strcpy(s->data,ch); r->next=s; r=s;
r->next=NULL; }
printf(\ printf(\ scanf(\
4
相关推荐: