| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1579 人关注过本帖
标题:关于数据结构的一些问题
只看楼主 加入收藏
shou998
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-6-27
收藏
 问题点数:0 回复次数:8 
关于数据结构的一些问题

1、建立一个包括头结点和3个结点(4,2,1)的单链表,在单链表的指定位置i=3插入一个结点,x=5,使之成为(4,2,5,1),再在指定的位置i=2删除一个结点,使之成为(4,5,1),再查找结点,i =3的值。

2、从键盘输入两个单链表A和B,表A和B中元素递减有序,编写程序将A和B归并成一个按元素值递减有序的单链表C。分别输出单链表A、B和C所有结点的值。

3、利用栈的特性将十进制数256转换为二进制的数

4、有两个字符串A=“STUDENT”,B=“STRING”,编写程序,比较两个字符串的大小。

5、设计一个程序,完成M×N矩阵的转置

6、从键盘输入8个整数构造成一棵二叉排树,并中序遍历该二叉排序树。

7、建立一个有序表(8,14,19,23,35,43,57,64,72),编写程序用折半查找的算法查找关键字为57、11的数据记录。

8、以(18,7,34,11,22,4,42,15,27)为结点的值,编写程序生成一棵二叉排序树。

9、已知待排序的一组记录的关键子值初始排列如下所示:
{45,23,18,11,30,15,25,16},
编写程序用直接插入排序的算法对其进行排序。

10、已知待排序的一组记录的关键子值初始排列如下所示:
{45,23,18,11,30,15,25,16}
编写程序用冒泡排序的算法对其进行排序。

11、已知待排序的一组记录的关键子值初始排列如下所示:
{45,23,18,11,30,15,25,16},
编写程序用直接选择排序的算法对其进行排序。

12、已知待排序的一组记录的关键子值初始排列如下所示:
{45,23,18,11,30,15,25,16},
编写程序用快速排序的算法对其进行排序。

13、从键盘输入12个按递减顺序排列的整数构造成顺序表L,写一程序实现将x(其值从键盘输入)插入L中,并使L保持有序性。最后输出顺序表L的元素值;
从键盘上输入一个整数x,在顺序表L中查找x的位置。若找到,则显示值x在L中的下标;否则显示“该数不存在”。

14、从键盘输入12个整数构造成单链表R,删除单链表R中所有数据值为奇数的结点,输出单链表R删除前后的所有结点的值;
删除单链表R中第i个结点的直接前趋结点。i值从键盘输入

搜索更多相关主题的帖子: 数据结构 结点 二进制 单链 STRING 
2007-06-27 08:50
shixiaokun86
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-5-26
收藏
得分:0 

第一题的,可能有点麻烦的说 。。。。
#include<stdio.h>
#include<malloc.h>
typedef struct LNode{
int data;
struct LNode *next;
}Node, *LinkList;
main()
{
int m,n,h,j,l;
Node *La,*p,*q,*s;
La=(LinkList)malloc(sizeof(LNode));
La->next=NULL;
printf("插入的结点数:");
scanf("%d",&m);
for(h=0;h<m;h++)
{ printf("第[%d]个数是:",h+1);
scanf("%d",&n);
p=La;
j=0;
while(p&&j<h)
{ p=p->next;
j++;
}
s=(LinkList)malloc(sizeof(LNode));
s->data=n;
s->next=p->next;
p->next=s;
}
printf("插入结点的位置:");
scanf("%d",&m);
printf("插入的数是:");
scanf("%d",&n);
while(p&&j<m-1)
{ p=p->next;
j++;
}
s=(LinkList)malloc(sizeof(LNode));
s->data=n;
s->next=p->next;
p->next=s;
printf("删除结点的位置:");
scanf("%d",&m);
p=La;
j=0;
while(p->next&&j<m-1)
{ p=p->next;
j++;
}
q=p->next;
p->next=q->next;
n=q->data;
free(q);
printf("%d\n",n);
printf("查找的结点:");
scanf("%d",&m);
p=La->next;
j=1;
while(p&&j<m){
p=p->next;
j++;
}
l=p->data;
printf("%d\n",l);

}



2007-06-27 10:34
tong101200
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-7-5
收藏
得分:0 

#include<stdio.h>
#include<string.h>

int main()
{
char a[64]="hello";
char b[64]="hella";
if( strncmp(a,b,64) == 0)
{
printf("a == b \n");
}
else if(strncmp(a,b,64) < 0)
{
printf("a < b \n");
}
else
{
printf("a > b \n");
}
return 0;

}
4题

2007-07-05 10:44
cyzyh88
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-5-23
收藏
得分:0 
看不懂啊!

2007-07-05 16:55
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
看多了就懂了.

Repeat  Life=Study;Until (death);
2007-07-05 18:18
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
一下发这么多
偶无语拉
你自己还是先做做嘛
这样就是把程序给你拉
有什么用呢

   好好活着,因为我们会死很久!!!
2007-07-05 19:04
shixiaokun86
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-5-26
收藏
得分:0 

呵呵,数据结构的问题不是那么容易就写出来的。而且数据结构的算法最好是自己去写下,那样才能更好的理解算法的。毕竟数据结构是各种编程中的命根阿~~~~


2007-07-06 22:51
笨鸟先飞%
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-31
收藏
得分:0 
LinkedList Union(LinkedList a,b)
 { pa=a->next; pb=b->next;
 a->next=null;
 while(pa!=null && pb!=null)
  if(pa->data<=pb->data)
        { r=pa->next;   
 pa->next=a->next;
a->next=pa;
pa=r;
}
           else
{r=pb->next;∥ 将pb 的后继结点暂存于r。
pb->next=a->next;
a->next=pb;
pb=r;
}
while(pa!=null)
{r=pa->next; pa->next=a->next; a->next=pa; pa=r; }
          while(pb!=null)
           {r=pb->next; pb->next=a->next; a->next=pb; pb=r; }
        }∥算法Union结束。


 呵呵 .. .. 写出来后再看你的题目,好象不是你要的答案。我上面写的是两个已知的列,你就当借见吧. . .
2008-10-31 21:16
笨鸟先飞%
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-31
收藏
得分:0 
顺便补充点:那个是第二题的相关内容
2008-10-31 21:17
快速回复:关于数据结构的一些问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012653 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved