2022年2022年郝斌老师数据结构上课代码 .pdf
《2022年2022年郝斌老师数据结构上课代码 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年郝斌老师数据结构上课代码 .pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一部分typedefine 的用法# include typedef struct Studentint sid;char name100;char sex;*PSTU, STU;/ 等价于 STU 代表 struct Student, PSTU 代表了 struct Student *int main( void )STU st;/struct Studtn st;PSTU ps = &st;/struct Student *ps = &st;ps-sid = 99;printf( %dn, ps-sid );return 0;第二部分链表部分的全部代码#include #include
2、#include struct nodeint data;struct node * next;/创建一个链表,返回pheadstruct node * creat_list()/函数返回类型为structnode* 类型struct node * phead=NULL;struct node * ptail=NULL;struct node * pnew=NULL;int i;int len;int val;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 -
3、- - - - - - - - phead=(struct node *) malloc(sizeof (struct node);if (phead=NULL)printf( 动态分配失败n);exit(-1);phead-next=NULL;ptail=phead;printf( 请输入链表的长度len:n);scanf(%d,&len);for(i=0;idata=val;pnew-next=NULL;ptail-next=pnew;ptail=pnew;return phead;/输出链表void show_list(struct node * phead)struct node *
4、p;p=phead-next ;while (p!=NULL)printf(%5d,p-data);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - p=p-next ;printf(n);/判断链表是否为空bool is_empty(struct node * phead)if (phead-next=NULL)return true ;elsereturn false ;/求链表的长度int length_list(stru
5、ct node* phead)int len=0;struct node * p;p=phead-next;while (p!=NULL)+len;p=p-next;return len;/对链表进行排序void sort_list(struct node * phead)int l;int i,j,t;struct node * p, * q;l=length_list(phead);for(i=0,p=phead-next;inext)for(j=i+1,q=p-next;jnext)if (p-dataq-data)名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
6、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - t=p-data;p-data=q-data;q-data=t;/在链表中插入数据void insert_list(struct node * phead,int pos, int val)int i;struct node * p=phead-next;struct node * pnew;if (p=NULL)printf( 程序出错 !n);exit(-1);for(i=0;inext;+i;/让 p 指向插入位置的前面一个节点pnew=(st
7、ruct node *)malloc(sizeof(structnode);pnew-data=val;pnew-next=p-next;p-next=pnew;return ;/删除链表中某一位置的节点void delete_list(struct node * phead,int pos)int i;struct node * p=phead-next;struct node * q;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - -
8、 - - if (p=NULL)printf( 程序出错 !n);exit(-1);for(i=0;inext;+i;q=p-next;p-next=q-next;return ;/主函数int main ()int l;struct node * phead ;/ 创建头结点phead=creat_list();/ 创建一个链表,头指针返回给pheadshow_list(phead);/ 输出刚才创建的链表l=length_list(phead);/ 求链表的长度printf(len=%dn,l);/ 输出链表的长度l/ sort_list(phead);/ 对链表进行排序/ show_li
9、st(phead);/ 对排序完之后的链表进行输出insert_list(phead,4,44);show_list(phead);delete_list(phead,3);show_list(phead);return 0;第三部分栈的全部代码# include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - # include # include typedef struct Nodeint data;struct Nod
10、e *pNext;NODE, *PNODE;typedef struct StackPNODE pTop;PNODE pBottom;/pBottem 是指向栈底下一个没有实际意义的元素STACK, *PSTACK;void init( PSTACK );void push( PSTACK, int );void traverse( PSTACK );bool pop( PSTACK, int * );bool empty( PSTACK pS );int main( void )STACK S;/STACK 等价于 struct Stackint val;init( &S );/目的是造出一
11、个空栈push( &S, 1 );/压栈push( &S, 2 );push( &S, 3 );push( &S, 4 );push( &S, 5 );push( &S, 6 );push( &S, 7 );traverse( &S );/遍历输出clear( &S ); /清空数据traverse( &S );/遍历输出if( pop( &S, &val ) )printf( 出栈成功 ,出栈的元素是&dn, val );else名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6
12、页,共 14 页 - - - - - - - - - printf( 出栈失败 );traverse( &S );/遍历输出return 0;void init( PSTACK pS )pS-pTop = ( PNODE )malloc( sizeof( NODE ) );if( NULL = pS-pTop )printf( 动态内存分配失败!n );exit( -1 );elsepS-pBottom = pS-pTop;pS-pTop = NULL;/ 或是 pS-pBottom = NULL;void push( PSTACK pS, int val )PNODE pNew = ( PN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年郝斌老师数据结构上课代码 2022 年郝斌 老师 数据结构 上课 代码
限制150内