数据结构算法基本程序.doc

数据结构算法基本程序.doc

ID:51438123

大小:141.50 KB

页数:45页

时间:2020-03-24

数据结构算法基本程序.doc_第1页
数据结构算法基本程序.doc_第2页
数据结构算法基本程序.doc_第3页
数据结构算法基本程序.doc_第4页
数据结构算法基本程序.doc_第5页
资源描述:

《数据结构算法基本程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、线性表及其操作1、尾插法建立一个单链表,并按顺序输出2、单链表的元素查找,按内容查找3、元素插入操作4、按内容元素删除操作5、按位置删除元素6、建立双向链表7、单链表就地逆置8、约瑟夫环问题二、栈及其操作1、建立堆栈2、进栈与出栈3、栈的应用,括号匹配三、队及其操作1、链队列的建立2、入队和出队3、循环队列建立4、循环队列的入队和出队操作四、串及其操作1、串的朴素匹配五、树(二叉树)及其操作1、二叉排序树2、哈夫曼编码六、排序1、冒泡排序2、直接选择排序法一、线性表及其操作//Allcopyrightarepreservedbycobby/*尾插法建立一个单

2、链表,并按顺序输出*/#defineNULL0/*宏定义*/typedefstructnode/*定义结点类型的数据结构*/{charc;/*数据域,类型为字符型*/structnode*next;/*指针域,类型为本结构体类型*/}*L;/*类型重定义,即Node和*L和structnode等价*/main(){Ll,p,q;/*用指针类型定义三个结点类型的指针*/charch;l=(L)malloc(sizeof(L));/*分配内存空间*/l->c='';/*为头结点的数据域赋值,值为空*/l->next=NULL;/*指明下一个结点目前不存在*/q=

3、l;/*q为游动指针,链表结点的连结要用*/printf("Inputacharacter:");scanf("%c",&ch);getchar();//此语句用来吸收键盘输入的回车符,没有其它含义while(ch!='!')/*输入!表示输入结束*/{p=(L)malloc(sizeof(L));/*为新输入的数据分配内存空间*/p->c=ch;p->next=NULL;/*新输入的结点在链表的最后,即它的后面没有其它元素*/q->next=p;/*q用于将上一个元素链接至当前新元素*/q=p;/*q自己移到当前最后一个元素,以备继续链接所用*/scanf

4、("%c",&ch);getchar();}q=l;/*输入整个链表前,先将q移到链表头,l一般不动*/while(q->next!=NULL)/*若q所指向的元素后面还有其它元素,则将该元素的数据输出*/{printf("%c-->",q->next->c);/*q->next->c表示q所指向的下一个元素的数据*/q=q->next;/*完成该元素的输出后,q移至下一个元素重复输出操作*/}}//Allcopyrightarepreservedbycobby/*单链表的元素查找,按内容查找*/#defineNULL0/*宏定义*/typedefstructn

5、ode/*定义结点类型的数据结构*/{charc;/*数据域,类型为字符型*/structnode*next;/*指针域,类型为本结构体类型*/}*L;/*类型重定义,即Node和*L和structnode等价*/main(){Ll,p,q;/*用指针类型定义三个结点类型的指针*/charch;intn;l=(L)malloc(sizeof(L));/*分配内存空间*/l->c='';/*为头结点的数据域赋值,值为空*/l->next=NULL;/*指明下一个结点目前不存在*/q=l;/*q为游动指针,链表结点的连结要用*/printf("Inputacha

6、racter:");scanf("%c",&ch);getchar();while(ch!='!')/*输入!表示输入结束*/{p=(L)malloc(sizeof(L));/*为新输入的数据分配内存空间*/p->c=ch;p->next=NULL;/*新输入的结点在链表的最后,即它的后面没有其它元素*/q->next=p;/*q用于将上一个元素链接至当前新元素*/q=p;/*q自己移到当前最后一个元素,以备继续链接所用*/scanf("%c",&ch);getchar();}q=l;/*输入整个链表前,先将q移到链表头,l一般不动*/while(q->ne

7、xt!=NULL)/*若q所指向的元素后面还有其它元素,则将该元素的数据输出*/{printf("%c-->",q->next->c);/*q->next->c表示q所指向的下一个元素的数据*/q=q->next;/*完成该元素的输出后,q移至下一个元素重复输出操作*/}/*--------以上为建立一个单链表-------------*/printf("Inputacharacteryouwannafind");scanf("%c",&ch);printf("thecharacteryouwannafindis%c",ch);q=l->next

8、;/*q移至头结点的后一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。