資料結構部分總結(c語言版)

2022-08-16 22:03:10 字數 1730 閱讀 8167

這是乙個

/*此標頭檔案適用於串

其中包括最基本的函式操作

ok代表成功

no代表失敗

fs為特殊失敗的標誌

注:此標頭檔案中的初始化使用'0'代表結束的

使用者可以根據需要自行改變,最後一

個函式為kmp演算法,可以根據需要使用

#include

#include

#define ok 1

#define no 0

#define fs -1

typedef int nowname;

typedef struct strand

strand;

/*初始化、賦值函式

*/nowname strassign(strand *t,char *chars)

if(sum == 0)

else

for (int i = 0; i < sum; i++)

t->length = sum;

}return ok;}/*

對串進行輸出

*/void out(strand *s)

printf("\n");}/*

長度輸出函式

*/nowname length(strand *t)

/*字串的連線函式

*/void concat(strand *t,strand *s1,strand *s2)

j = s1->length;

for (int i = 0; i < s2->length; i++ , j++)}/*

主串s的pos位置後長度為len的子串,用sub返回

*/strand * substring(strand *sub,strand *s,nowname pos,nowname len)

for (int i = pos-1,j = 0; j < len; i++,j++)

sub->length = len;

return sub;}/*

返回子串t在主串s的第pos個位置後首次出現的位置

*/int index(strand *s,strand *t,int pos)

else

//printf("%d\n",sum);

if(i == t->length)

}return no;}/*

串之間的比較

0 兩個字串相同

1 t大於s

-1 s大於t

*/nowname strcompare(strand *t,strand *s)

if(t->length == s->length)

return no;

if(t->length-s->length>0)

return ok;

else

return fs;}/*

清空串*/

void nullstrand(strand *t)

}int * next(strand *s,int *next)

if(s->chars[i] == s->chars[j])

//printf("3\n");

next[i] = j;

i++;

}//printf("4\n");

/*右移,並且加1

*/for(int i = s->length-1; i >=1 ; i--)

next[0] = 0;

return next;

}

資料結構(C語言版)

用棧實現數字的進製轉換 10轉8 棧 限定只能在表尾進行插入或者刪除操作的線性表 特點 先進後出 儲存表示方法 順序棧和鏈棧 本文用的順序棧 實現 readonly name code class c include include define stack init size 100 儲存空間初始...

《資料結構(C語言版)》綜述

第一章 緒論 將於4月20日學習完畢,含課後題以及資料練習題 1.1什麼是資料結構 1.2基本概念和術語 1.3抽象資料結構型別的表示與實現 1.4演算法和演算法分析 1.4.1演算法 1.4.2演算法設計的要求 1.4.3演算法效率的度量 第二章 線性表 2.1線性表的型別定義 2.2線性表的順序...

讀資料結構(C語言版)

資料 資料是對現實世界物質的符號表示,在計算機中的意思是能輸入到計算機中進行計算處理的符號為資料 實現是客觀世界在計算機中的表示方式,是程式加工的原材料。資料可以是聲音,文件 資料元素 組成資料的基本構成單位,通常以結構化的形式出現,比如一本書的書目資訊,包含作者,書名,出版刊號,出版社這些資料項,...