题目序号:1122 链表的建立和逆序输出。
程序**:#include <>
#include <>
#include<>
typedef int elemtype;
typedef struct node
elemtype data;
struct node *next;
node,*linkedlist; /定义链表结点。
linkedlist linkedlistcreatr() 尾插法建立单链表。
node *l,*r;
l = node *)malloc(sizeof(node));
l->next = null;
r = l;
elemtype x;
while(scanf("%d",&x)!=eof &&x!=0)
return l;
linkedlist reverselist(linkedlist l) /把链表元素逆置。
if(l->next ==null ||l->next->next ==null)
node *t = null,*p = l->next,*q = l->next->next;
while(q !=null)
l->next->next = null;
l->next = p;
return l;
int main(void)
linkedlist list,start;
list = linkedlistcreatr();
reverselist(list);
for(start = list->next;start!=null;start=start->next) /输出单链表。
printf("%d ",start->data);
printf("");
return 0;
题目序号:1127
程序**:#include<>
#include<>
#include<>
typedef char elemtype;
#define maxsize 50
typedef struct node
elemtype data;
struct node *lchild;
struct node *rchild;
btnode; /定义树结点。
btnode *creatbtnode(char *pre,char *in,int n)
/* pre存放先序序列,in存放中序序列,n为二叉树的结点个数,本算法执行后返回构造二叉链的根结点指针 */
btnode *s;
char *p;
int k;
if(n<=0)return null;
s=(btnode*)malloc(sizeof(btnode创建二叉树结点*s
s->data=*pre;
for(p=in;p if(*p==*prepre指向根结点。
break在in中找到后退出循环。
k=p-in确定根结点在in中的位置。
s->lchild=creatbtnode(pre+1,in,k递归构造左子树。
s->rchild=creatbtnode(pre+k+1,p+1,n-k-1递归构造右子树。
return s;
void postorder(btnode *b后序遍历的递归算法。
if(b!=null)
inorder(b->lchild后序遍历左子树
inorder(b->rchild后序遍历右子树。
printf("%c",b->data访问根结点
int main(void)
int n=0,i=0;
elemtype pre[maxsize],in[maxsize];
gets(pre输入树的先序序列。
gets(in输入树的中序序列。
n=strlen(pre结点个数。
btnode *b=null;
b=creatbtnode(pre,in,n构造二叉树。
postorder(b后续遍历二叉树。
printf("");
return 0;
题目序号:1128 欧拉图。
程序**。#include<>
#include<>
#define max 100
int visited[max]=
int connect(mgraph* g判断有向图是否是强连通。
连通返回1,否则返回0
int i,flag=1;
dfs(g,1);
for(i=1;i<=g->n;i++)
return flag;
int degree(mgraph* g判断每个顶点的出度与入度是否相等。
若相等返回1,否则返回0
int i,j,flag=1;
int degree[2][maxdegree[0]记录出度,degree[1]记录入度。
for(i=1;i<=g->n;i++)
for(i=1;i<=g->n;i++)
return flag;
int main(void)
int n;
while(scanf("%d",&n)!=eof)
return 0;
题目序号:1134 快速排序。
程序**:#include <>
void quicksort(int a,int left,int right)//对a[left]至a[right]元素进行快速排序。
int i=left,j=right,temp;
temp=a[left];
if(left>right区间内没有元素的情况。
return;
while(i!=j从区间两端交替向中间扫描,直到i=j为止。
while(a[j]>=temp &&j>i从右向左扫描,找第一个小于temp的a[j]
j--;if(j>i找到这样的a[j],a[i]<-a[j]交换。
a[i++]a[j];
数据结构课程设计
课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...
数据结构课程设计
数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...
数据结构课程设计
班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...