1 / 13
文档名称:

3数据结构实验链表答案资料.doc

格式:doc   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

3数据结构实验链表答案资料.doc

上传人:今晚不太方便 2016/6/24 文件大小:0 KB

下载得到文件列表

3数据结构实验链表答案资料.doc

相关文档

文档介绍

文档介绍:实验报告院(系) :信息科学与技术学院课程名称:数据结构日期: 班级学号实验室专业姓名计算机号实验名称线性链表的运算成绩评定所用软件VC或 TC 教师签名实验目的 1. 掌握线性链表的基本概念 2. 掌握线性链表的建立、插入和删除等方法。 3. 掌握线性链表的基本算法。实验总结一、程序: #include "" #include "" typedef char elemtype; typedef struct node{ elemtype data; struct node *next; } NODE,*NODEPTR; NODEPTR createlistf() { char ch; NODEPTR head; NODE *p; head=(NODEPTR )malloc(sizeof(NODE)); head->next=0; ch=getchar(); while(ch!='\n') { p=(NODE *)malloc(sizeof(NODE)); p->data=ch; p->next=head->next; head->next=p; ch=getchar(); } return (head); } int InsLinkList(NODE *p, char x) { NODE *s; /* 定义指向结点类型的指针*/ s=(NODE *)malloc(sizeof(NODE)); /* 生成新结点*/ s->data=x; s->next=p->next; p->next=s; return 1;} void DelLinkList(NODE *p) { NODE *q; if(p->next!=0) { q=p->next; /*q 指向 p 的后继结点*/ p->next=q->next; /* 修改 p 结点的指针域*/ free(q); } /* 删除并释放结点*/ } NODE *lbcz(NODE *h,int x) { NODE *p; p=h; while (p!=0 && p->data!=x) p=p->next; return(p); } void printlink(NODE *h) {NODE *p; p=h->next; printf("\n"); while (p!=0) {printf("%c",p->data); p=p->next; } printf("\n"); } void main() {NODE *h,*p; char x; printf("\n 头插法建立单链表,应包含字符 a ,以回车作为结束符\n"); h=createlistf(); printf("\n 建立的单链表为\n"); printlink(h); printf("\n 在链表中查找字符 a\n"); p=lbcz(h,'a'); printf("\n 将字符 k 插入到字符 a 后面\n"); InsLinkList(p,'k'); printf("\n 插入字符后的链表为\n"); printlink(h); printf("\n 输入链表中被删除字符的前一个字符\n"); scanf("%c",&x); p=lbcz(h,x); printf("\n 删除该字符后的一个字符\n"); DelLinkList(p); printf("\n 删除字符后的链表为\n"); printlink(h); } 二、源代码以及输入数据输出结果为: #include "" #include "" typedef int elemtype; typedef struct node{ elemtype data; struct node *next; } NODE,*NODEPTR; NODEPTR createlistf() { int ch; NODEPTR head; NODE *p; head=(NODEPTR )malloc(sizeof(NODE)); head->next=0; scanf("%d",&ch); while(ch!=0) { p=(NODE *)malloc(sizeof(NODE)); p->data=ch; p->next=head->next; head->next=p; scanf("%d",&ch); } return (head); } int InsLinkList(NODE *h, int x) { NODE *s,*q,*p; /* 定义指向结点类型的指针*/ p=h;q=p; while(p->next!=NULL && p->data<x) {q=p;p=p->next;} s=(NODE *)mallo