LinkedLists(链结串列).ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LinkedLists(链结串列).ppt

鏈結串列;學習目標 ;指標;基本觀念;指標變數的宣告;ptr為指標變數;注意事項 ;指標與函數間的關係; #include stdio.h change(x,y) int *x,*y; { int temp; temp=*x; *x=*y; *y=temp; } void main(void) { int m=3,n=4; printf( m = %d n= %d \n\n,m,n); printf( m = %d n= %d \n\n,m,n); change(m,n); printf( m = %d n= %d \n,m,n); };指標與陣列的關係;陣列位址;#include stdio.h void main(void) { int array[10]={ 1,2,3,4,5,6,7,8,9,10}; int count; for ( count=0 ;count10; ++count ) printf(array[%d]=%d --*(array+%d\)=%d\n,count, array[count], count, *(array+count)); };一維陣列 我們可以用指標來存取陣列,陣列是一連續的記憶體空間.假設有一陣列如下: int array[10] = {1,2,3,4,5,6,7,8,9,10}; int *ptr = array; ;二維陣列 int array[2][5] = {1,2,3,4,5,6,7,8,9,10}; int *ptr = array; ;指標???陣列的混合應用;指標與結構的關係;指標範例;(B) void main() { int s[ ] = {1,3,7,9,6,8}, *q; q=s; /* q=s不動 */ printf(“%d\n”,*q++); ? 1 /* q++ ~~ q=q+1 */ //找到 *q 後再增加一單位位址 printf(“%d\n”,(*q)+2); ? 5 /* 3+2 */ printf(“%d\n”,*(q+2)); ? 9 /*q以下2單位位址所對應之數值*/ q++; /*q 增加一單位 */ /*q往後移 1 位 */ printf(“%d\n”,*q); ? 7 };鏈結串列;典型的鏈結串列 ;循環式的鏈結串列 (Circularly linked list) ;雙重鏈結串列 (Doubly linked list) ;樹 (tree) ;圖型 (Graph) ;鏈結串列的定義;有次序排列之資料稱為串列(List),如一年四季,數字0~9 陣列、堆疊及佇列皆屬於串列(List)的結構 鏈結串列(Linked List)的頭與尾決定於串列中的節點所在的位置,對於串列的處理,都是從頭節點開始,然後一一地找到其他的節點。;鏈結串列特點;鏈結串列的種類;雙向鏈結=>節點至少包含資料及左右兩個結鏈。 ;陣列與鏈結串列的比較;使用陣列;使用結構;定義;這一個結構包含兩部分: 學號 指向下一個record結構的指標, 這時可以使使用malloc函式向記憶體要求配置記憶體空間,使用方式為:;void main() { int i;struct record*phead,*ptr,*pNew; phead=creat(1); //將第一個節點的位置傳給phead ptr=phead; //將phead中儲??的第一個節點位置傳給ptr for(i=2;i=10;i++) //跑9次,每一次加一個節點 { pNew=creat(i); //將新節點的位置傳給pNew ptr-next=pNew; //將pNew的位置傳給ptr-next ptr=pNew; //ptr指向新節點. };//利用creat可以創造出新結點,而我們需要將新結點接在原串列後,方法是 //1.製造一個新結點. //2.新結點接在原串列的尾巴,而ptr就是指向串列尾巴的指標. //3.接著把ptr指向新結點,因為整個串列的最後一個就是最後加入的新結點.;ptr = phead; // ptr指向第一個 while(ptr != NULL) // 直到ptr == NULL時跳出 { printf(%d\n,ptr-number); // 印出ptr-number ptr = ptr-next; // 移向下一個節點 } } struct record *creat(int number) { struct record *New; //

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档