欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 顺序表程序的心得体会

顺序表程序的心得体会

时间:2020-08-23 16:13

顺序表的基本操作的实现

#include #include \\\/\\\/ 简单构造的顺序表typedef struct LIST_tag { int number; struct LIST_tag *next;}LIST_T;\\\/\\\/ 显示顺序表void display_list(const char *msg, LIST_T *list) { printf(msg); while (list != 0) { printf(%d , list->number); list = list->next; } printf(\\\ );}\\\/\\\/ 初始化一个顺序表void init_list(LIST_T **list_pp, int *arr, int len) { for (int i=0; inumber = arr[i]; list_pp = &(*list_pp)->next; } *list_pp = 0;}\\\/\\\/ 释放一个顺序表void free_list(LIST_T *list) { LIST_T *list_tmp = list; while (list != 0) { list = list->next; free(list_tmp); list_tmp = list; }}\\\/\\\/ 在一个顺序表中查找一个值,返回0表示查找到,返回-1表示没有查找到int search_emel_list(int s_number, LIST_T *list) { while (list != 0) { if (s_number == list->number) return 0; list = list->next; } return -1;}\\\/\\\/ 并集void union_list(LIST_T **list_pp, LIST_T *list1, LIST_T *list2) { LIST_T *list1_tmp = list1; LIST_T *list2_tmp = list2; while (list1_tmp != 0) { *list_pp = (LIST_T *)malloc(sizeof(LIST_T)); (*list_pp)->number = list1_tmp->number; list1_tmp = list1_tmp->next; list_pp = &(*list_pp)->next; } while (list2_tmp != 0) { if (search_emel_list(list2_tmp->number, list1) == -1) { *list_pp = (LIST_T *)malloc(sizeof(LIST_T)); (*list_pp)->number = list2_tmp->number; list_pp = &(*list_pp)->next; } list2_tmp = list2_tmp->next; } *list_pp = 0;}\\\/\\\/ 交集和差集,flag为0时为交集,flag为1时为差集,但要根据list1和list2来设定void intersect_and_diff_list(LIST_T **list_pp, LIST_T *list1, LIST_T *list2, int flag) { LIST_T *list1_tmp = list1; LIST_T *list2_tmp = list2; while (list2_tmp != 0) { if (search_emel_list(list2_tmp->number, list1) == flag) { *list_pp = (LIST_T *)malloc(sizeof(LIST_T)); (*list_pp)->number = list2_tmp->number; list_pp = &(*list_pp)->next; } list2_tmp = list2_tmp->next; } *list_pp = 0;}int main() { int arr_a[] = {1,5,6,3,7,4,9,10,12,8,25}, arr_b[] = {8,13,15,9,36,27}; LIST_T *list_a, *list_b; LIST_T *list_u, \\\/\\\/ 并集 *list_i, \\\/\\\/ 交集 *list_d; \\\/\\\/ 差集 list_a = list_b = list_u = list_i = list_d = 0; init_list(&list_a, arr_a, sizeof(arr_a)\\\/sizeof(arr_a[0])); init_list(&list_b, arr_b, sizeof(arr_b)\\\/sizeof(arr_b[0])); display_list(list_a: , list_a); display_list(list_b: , list_b); union_list(&list_u, list_a, list_b); display_list(list_u: , list_u); intersect_and_diff_list(&list_i, list_a, list_b, 0); display_list(list_i: , list_i);intersect_and_diff_list(&list_d, list_i, list_a, -1); display_list(list_d: , list_d); free_list(list_a); free_list(list_b); free_list(list_u); free_list(list_i); free_list(list_d);}简单写了个,希望对你有帮助.

windows程序设计心得体会

windows程计也就是基于微软的windows操作系统而进行的程序设计。

(这是一句,但不要小看废话阿!真理往往就在其中)你有没有想过,为什么是基于windows操作系统呢

下面就来解答:windows应用程序需要利用由windows操作系统开放出来公用用程序使用的应用程序接口“API”(说道重点了)windows提供了上千种API函数供应用程序使用。

上面说了,windows程序其实就是在非逻辑的使用这些API函数,我这里提到了“非逻辑”三个字(这是本人的看法),这正是windows程序的精髓,这是一切windows程序运行的方式(可能严重了点)。

非逻辑也就是指程序不是按照事先安排好的顺序来进行的,是根据用户的不同操作或者是其他某些原因一步一步进行的。

这种运行方式就叫做“消息驱动”简单一点来解释一下何谓消息驱动,就是指应用程序始终在等待(等待一词也许不他恰当,但可能好理解),它绝对不是在等待谁会给它爱(本人爱开玩笑请别见怪!)它是在等待用户或者是系统的消息(也就是命令),当接到消息后呢,它会把消息通过DispatchMessage(&msg)传递给窗口函数(窗口函数就是一个应用程序的核心)窗口函数就会对照事先由程序编写好的消息对照表调用对应的方法来处理消息。

这样就完成一个消息的处理,接下来准备处理下一个消息。

你也许会问那不是无休止的运行下去了吗

当然不会,下面我用程序本身来说明这个问题://消息循环,通过此处来不断的取得消息。

while(GetMessage(&msg,NULL,0,0)){//消息进行一些转换TranslateMessage(&msg);//把消息传向窗口函数DispatchMessage(&msg);}returnmsg.wParam;就是这样了:当我们点击窗口右上角的小叉或者点击退出按钮时,windows就会自动在我们的消息队列中加入一条消息“WM_DESTROY”,这时呢窗口程序有这么一部分:switch(message){\\\/\\\/其它代码.........\\\/\\\/caseWM_DESTROY:PostQuitMessage(0);return0;相信一般的朋友都会明白吧,它的作用的就是在接收到WM_DESTROY时呢,通过调用PostQuitMessage(0)让windows在消息列表中呢在加入另一条消息“WM_QUIT.当GetMessage函数抓取到WM_QUIT时返回0,其余返回非0值,懂了吧,这下可以退出消息循环了。

这就是windows程序设计最基础的部分了,可以说是核心。

该说一些心得了,我认为学习windows程序设计不要基于某一部分,而要把握住其大局,要有整体观,有了整体观对windows程序设计有了一定的了解后在对其各部分下功夫(这下可不是照顾全局了,要静下心来细心的咀嚼,要不然你会咽到的。

)这样才不会走火入魔(嘿嘿)就写到这吧,以后等我水平高些了再写(还早着呢,嘿嘿),希望我没白费功夫,也希望对你有用,88。

程序修改(创建一个顺序表,并实现插入、删除算法)

都是些小问题注意输入时,中间不能有空格,如输入:12345回车0,输出:12045已改(后面有注释):#include #include #define MaxSize 50typedef char ElemType;typedef struct { ElemType elem[MaxSize]; int length;}SqList; SqList *InitList(void) { SqList *L = NULL;L = (SqList *) malloc (sizeof(SqList));L->length = 0;return L;}void DispList(SqList *L){ int i; if (L->length == 0){return;} for (i=0; ilength; i++){printf(%c, L->elem[i]);} printf(\\\ );}void ListInsert(SqList * L, int i, ElemType e){int j; if ((i < 1) || (i > L->length)) {return;}i--;for (j=L->length; j>i; j--){L->elem[j] = L->elem[j-1];}L->elem[i] = e;L->length++;}void ListDelete(SqList * L, int i) { int j;if ((i < 1) || (i > L->length)){return;}i--;for (j=i; jlength-1; j++){L->elem[j] = L->elem[j+1];}L->length--;}int main(void){SqList *L = NULL;int i;char f;L = InitList();\\\/\\\/去掉&L,加上L = printf(Please enter char:\\\ );for(i=0; i<5; i++){scanf(%c,&(L->elem[L->length++]));}fflush(stdin);\\\/\\\/防止回车字符被下个scanf吃掉printf(\\\ );printf(Please a enter char:\\\ );scanf(%c,&f);ListInsert(L,4,f);printf(\\\ );ListDelete(L,3);DispList(L);}

说明要有顺序: 常见的说明顺序有

说明文答题技巧1、说明文的类型:事物、事理说明文(从内容角度,根据说明的对象和目的)。

① 事物说明文一般标题就是说明的对象;② 事理说明文找准开头结尾的总结句。

因为说明对象是一篇文章所要介绍的事物或事理,一般是一个名词或名词短语,可以从两个方面入手:一看文题二看首尾段。

事物说明文指出被说明事物即可。

事理说明文指出说明内容,形成一个短语:介绍了……的……(对象加内容) 。

2、说明文的语言:平实、生动说明文(语言表达角度) 。

3、说明方法: 一般回答三个字,要掌握几种常见的说明方法,会分析在文中的作用:①.举例子:具体真切地说明了事物的××特点。

②.分类别:条理清楚地说明了事物的××特点。

对事物的特征\\\/事理分门别类加以说明,使说明更有条理性。

使说明的内容眉目清楚,避免重复交叉的现象。

③.列数字:具体而准确地说明该事物的××特点。

使说明更有说服力。

④.作比较:突出强调了被说明对象的××特点(地位、影响等)。

⑤.下定义:用简明科学的语言揭对说明的对象\\\/科学事理加以揭示,从而更科学、更本质、更概括地揭示事物的特征\\\/事理。

⑥.打比方:打比方就是修辞方法中的比喻。

生动形象地说明该事物的××特点,增强了文章的趣味性。

⑦.画图表:使读者一目了然,非常直观形象地说明的事物的××特点。

⑧.作诠释:对事物的特征\\\/事理加以具体的解释说明,使说明更通俗易懂。

下定义与作诠释的区别是:定义要求完整,而诠释并不要求完整,对事物的特征\\\/事理加以具体的解释说明,使说明更通俗易懂。

可以颠倒。

⑨.摹状貌:对事物的特征\\\/事理加以形象化的描摹,使说明更具体生动形象。

⑩.引资料:能使说明的内容更具体、更充实。

用引用的方法说明事物的特征,增强说服力,如引用古诗文、谚语、俗话。

引用说明在文章开头,还起到引出说明对象的作用。

4、说明顺序:时间顺序(程序顺序)、空间顺序、逻辑顺序。

在答题时可答得具体些。

如:空间顺序(从上到下,从里到外,总到分,外到内,前到后,左到右,整体到局部,都可反之等,常用方位词如介绍建筑物或实体)。

逻辑顺序(先结果后原因,层层递进,现象到本质,因到果,果到因,主到次,浅入深,个别到一般等,常用表因果、表事理顺序的词,如“因为、所以”“首先、其次”)。

时间顺序则是说明事物发展、演变,例如介绍工作程序的文章。

答题格式:本文使用了 的说明顺序对 加以说明,使说明更有条理性,便于读者理解。

(第一空应该填具体的说明顺序,第二空应该填写具体的事物名称或说明的事理。

如果是事理性说明文,但又不能准确表述,可用“事理”、“科学事理”等模糊性的语言表述。

)5、说明对象:指文章说明的主要人、事物或理(一般不必答人或事物的特点)。

6、说明文的结构常见的形式有:“总——分”式(或由总到分,或由分到总,或总分总)、并列式、递进式等。

分析文章结构,抓中心句及连接词,如“首先”“其次”“还”“也”“此外”等词语7、中心句:出现的位置开头或结尾,有时在句中。

判断,多为概括性较强的句子。

叙述句、描写句、阐释句、疑问句一般不宜作中心句。

其他文体文章也如此。

概括文段的中心句。

对策:(1)思考该段说明的内容,不仅要注意主要的,还要注意次要的。

(2)紧扣表秩序的词语,如“首先”“其次”“还有”等词语,参照上下段落的中心句的句式进行概括。

8、说明语言类型1、加点字词有何作用

抓住说明文语文准确这一特点答题。

对策:答:准确\\\/生动形象\\\/ 地说明了事物“……”的特征\\\/事理。

类型2、能否替换为另一个词语

并说明理由。

对策:答:(1)不可以。

2)原词的意思或内容。

(3)所换词语的意思或内容。

(4)换了后意思有何改变,与不符合实际。

类型3、限制性词语能否删去

对策:答:(1)表态(删还是不删)。

(2)定性。

如:“比较”“几乎”“相当”等词表程度修辞;“大约”“可能”“左 右”等表估计,“多”“有余”等表数量。

(3)若删去,原来什么样的意思就变成了什么样的意思了,不符合实际,太绝对了。

(4)xx词体现了语言的准确 性、周密性、科学性。

类型4、从文章中找出一个能体现说明文语言“准确”特点的词句,并体会。

类型5:指代——“这些条件”、“这种现象”“同样道理”等在文中具体指代什么。

对策:一般指的就是代词前面的那句话,找最近的一句话。

有时要注意可能不是整句话,而是其中的一部分。

如何建立一个顺序存储的线性表,实现线性表的插入、删除操作

算法基本思想:将数组的第一个元素与最后一个交换,第二个与倒数第二个交换,第三个与倒数第三个交换,直到结束。

其中,定义一个临时变量,以便交换之用。

算法实现如下: void reverse(int a[], int size) { int tmp; for (int i = 0; i < size\\\/2; ++i) { tmp = a[i]; a[i] = a[size-1]; a[size-1] = tmp; } }

学习算法和数据结构有什么用

顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。

线性表采用顺序存储的方式存储就称之为顺序表。

顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。

采用顺序存储结构的线性表简称为“ 顺序表”。

顺序表的存储特点是:只要确定了起始位置,表中任一元素的地址都通过下列公式得到:LOC(ai)=LOC(a1)+(i-1)*L 1≤i≤n 其中,L是元素占用存储单元的长度。

顺序表的结构定义: #define maxlen 50 \\\/\\\/定义顺序表中元素个数最多有几个 typedef struct { elementtype data[maxlen]; \\\/\\\/elementtype是元素的类型 依具体情况而定 int listlen; \\\/\\\/便于时刻了解顺序表里元素的个数 }seqlist; \\\/\\\/顺序表的名称 不妨为seqlist 声明顺序表类型变量: seqlist L,L1; 如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。

则有如下的关系:location (ki+1) = location (ki) +len location (ki) = location(k1) + (i-1)len 存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点一定具有顺序表中的逻辑关系。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片