數據結構c語言版視頻教程
A. 誰有好一點的c語言,C++,數據結構視頻教程
吉林大學C語言視頻教程 全51集 CSF格式
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177517
C語言基礎視頻教程 全14講 完整上架
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181035
C語言程序設計視頻教程 曾怡教授講解 全28講完整版下載
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181575
數據結構視頻教程 清華大學嚴蔚敏主講 全48講 完整版 ASF格式
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165468
數據結構C語言版視頻教程 全52講完整版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156467
孫鑫C++視頻教程 rmvb格式 全20CD完整版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156290
C++視頻教程 邊用邊學Visual C++ 6 (ASF格式)
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177500
中山大學蔡培興 C++語言視頻教程 全51講 精品推薦
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=158073
C++程序設計視頻教程 東南大學何潔月主講 全80講(上) 48講
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181543
C++程序設計視頻教程 東南大學何潔月主講 全80講(下) 32講
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181546
吉林大學C語言視頻教程 全51集 CSF格式
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=177517
C語言基礎視頻教程 全14講 完整上架
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181035
C語言程序設計視頻教程 曾怡教授講解 全28講完整版下載
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=181575
數據結構視頻教程 清華大學嚴蔚敏主講 全48講 完整版 ASF格式
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=165468
數據結構C語言版視頻教程 全52講完整版
http://bbs.topsage.com/dispbbs.asp?boardID=121&ID=156467
B. 嚴蔚敏數據結構題集(C語言版)實習題答案
/* 用鄰接矩陣表示的圖的prim演算法的源程序*/
#include<stdio.h>
#define MAXVEX 6
typedef char VexType;
typedef float AdjType;
typedef struct {
int n; /* 圖的頂點個數 */
/*VexType vexs[MAXVEX]; 頂點信息 */
AdjType arcs[MAXVEX][MAXVEX]; /* 邊信息 */
} GraphMatrix;
typedef struct{
int start_vex, stop_vex; /* 邊的起點和終點 */
AdjType weight; /* 邊的權 */
} Edge;
Edge mst[5];
#define MAX 1e+8
void prim(GraphMatrix * pgraph, Edge mst[]) {
int i, j, min, vx, vy;
float weight, minweight; Edge edge;
for (i = 0; i < pgraph->n-1; i++) {
mst[i].start_vex = 0;
mst[i].stop_vex = i+1;
mst[i].weight = pgraph->arcs[0][i+1];
}
for (i = 0; i < pgraph->n-1; i++) { /* 共n-1條邊 */
minweight = MAX; min = i;
for (j = i; j < pgraph->n-1; j++)/* 從所有邊(vx,vy)(vx∈U,vy∈V-U)中選出最短的邊 */
if(mst[j].weight < minweight) {
minweight = mst[j].weight;
min = j;
}
/* mst[min]是最短的邊(vx,vy)(vx∈U, vy∈V-U),將mst[min]加入最小生成樹 */
edge = mst[min];
mst[min] = mst[i];
mst[i] = edge;
vx = mst[i].stop_vex; /* vx為剛加入最小生成樹的頂點的下標 */
for(j = i+1; j < pgraph->n-1; j++) { /* 調整mst[i+1]到mst[n-1] */
vy=mst[j].stop_vex; weight = pgraph->arcs[vx][vy];
if (weight < mst[j].weight) {
mst[j].weight = weight;
mst[j].start_vex = vx;
}
}
}
}
GraphMatrix graph = {
6,
{{0,10,MAX,MAX,19,21},
{10,0,5,6,MAX,11},
{MAX,5,0,6,MAX,MAX},
{MAX,6,6,0,18,14},
{19,MAX,MAX,18,0,33},
{21,11,MAX,14,33,0}
}
};
int main(){
int i;
prim(&graph,mst);
for (i = 0; i < graph.n-1; i++)
printf("(%d %d %.0f)\n", mst[i].start_vex,
mst[i].stop_vex, mst[i].weight);
return 0;
}
C. 如何學好計算機編程
問題一:從零開始學習計算機編程應該怎麼學 樓主注意一下 如果想學計算機的話需要很強的自學能力和耐性 如果這兩點沒有最好別學。
如果想學第一步需要學習一門編程語言推薦C語言 樓主可以查下編程語言排行榜C一直穩居第一名
從基本的C語言語法入手,邊學語法邊寫程序不要忘記做一下書籍的課後編程練習題,然後可以學習下java語言,java有自己的很多程序庫可以直接調用,買本java的教程看看可以寫寫小程序了。然後如果想深入你還需要學習操作系統、計算機組成原理、計算機網路、編譯原理、還有數學(離散數學很重要),當然了還學要學別的東西,太多了一下子說不全。我是軟體工程專業,課程基本自學的,純經驗之談。
問題二:電腦編程怎麼樣?學的人多不多,好不好就業? 學的話比較難,c++還是要有一定我的英文水平的,就業是可以的還是看你學的怎麼樣,比較耗腦子,
問題三:零基礎學計算機編程有什麼好的書籍推薦 下面這個可以參考一下,具體還要看個人的情況。
我覺得應該根據你的工作需要或者說你的發展方向而定。基本上兩大類吧:C/C++和Java。比如,如果你要做企業級應用的你應該學習Java和C#;如果你想做嵌入式,那麼應該學好C語言;其他情況下,在你不知道要做什麼之前你可以選擇學習C/C++。學會這兩大類中的一類,對於你學習其他語言都將是比較輕松,包括腳本語言,動態語言??呵呵,這里想就自己的學習經歷和情況給大家一個建議,僅供參考。
1、我的入門是從學習C語言開始的(其實課程是C++),這是我們學校的公共課,我上課比較認真(雖然老師講得很差,而且一段時間後,我就發現自己的基礎掌握比她好,當然理解深度沒她好),因此,我認為對於完全沒有基礎的人而言,聽別人講比較容易入門。當時的教材是學校自己編的,挺爛的。
建議一(以C/C++為例),對於剛想進入編程的人(就是從來都沒有接觸過編程的人),最好是聽課的方式(自己看的話估計要很慢,而且很痛苦),可以找視頻或者培訓等。C語言推薦入門教材:譚浩強的C語言,最新版是第三版,不過第二版應該也可以了(藍色的)。說明一下:堅決不同意直接看K&R的《The C programming language》,這本書絕對不是初學者可以看懂的,裡面講語法的並不多,語法都是合在程序裡面講。不過這本書非常好,入門以後一定要看的一本書。
當然可以從C++直接入門,C++之父強烈推薦從C++直接入手。C++推薦入門教材:錢能的C++(紅色的,清華大學出版),這本書第一版不是ISO C++,不過比較經典,作者現在也出了第二版了,第二版好像不是太好。國外的最好的入門教材據說是:《Acclerated C++》作者是Koenig和Moo夫婦,非常厲害。他們的著作還有《c陷阱與缺陷》《c++沉思錄》。《Acclerated C++》這本入門的書我沒有看過,我覺得還是先找本國內的書好好看,看的差不多了,國外的經典書籍隨便看就會覺得很有味道,否則你可能會很受打擊。入門的書至少要看兩三遍(要徹底理解哦 ):)。如果是C++,我建議後面類的部分至少要理解三到五遍。說明一下,c++模板的部分可以先不用看,如果有興趣的話,等把c++學的差不多了,我覺得可以把模板、STL、泛型編程結合起來學習,這個又是一個很大的工作量了,又得下很大的功夫。所以說,C++博大精深啊。
建議二、學習過程中要結合簡單的演算法,像冒泡還有類似c語言程序百例這樣的小例子做做;更進一步應該做點大一點的項目,最好是控制台程序。或者你已經著手學習win32、MFC或linux,你也可以結合平台做點小的項目。
2、第一階段是最苦的,接下來相對就知道應該怎麼去學習了。這時候假設你已經有了扎實的c++基礎。這是你可以選擇也應該選擇發展方向了,做企業級應用,還是系統開發,嵌入式設計或者游戲開發?? 那時我其實並沒有考慮那麼多,因為我不是學計算機的,因此我就把參加一些計算機之類的考試當作學習目標。我當時其實C++語言基礎已經很不錯了,但是上機實踐很少(那時我沒有電腦),因此參加省計算機二級,全國計算機三級和全國計算機四級考試,結果上機都沒有通過。我很郁悶,二級的時候是我不知道怎麼樣進那個DOS界面把題目調出來,三級的時候是很快就編好了,也通過運行了,可是成績出來卻不及格,四級的時候是編好了,可能是我那題目比較難,好像用了兩次循環,結果那破機器竟然承受不了。後來一亂就毀了(當然主......>>
問題四:學好計算機編程可以從事什麼工作! 1 可視化編程
掌握程序設計方法及可視化技術,精通一種可視化平台及其軟體開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。
就業方向:企業、 *** 、社區、各類學校等可視化編程程序員。
2 WEB應用程序設計
具有美工基礎和網頁動畫設計能力,掌握互動式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網路開發工程師認證。
就業方向:企業、 *** 、社區、各類學校等WEB應用程序員。
3 軟體測試
掌握軟體測試的本原理、方法和組織管理,精通軟體測試工具。獲取ATA軟體測試工程師或Delphi初級程序員或Java初級程序員認證。
就業方向:企業、 *** 、社區、各類學校等軟體測試員。
4 資料庫管理
能應用關系範式進行資料庫設計,精通SQL語言,勝任資料庫伺服器管理與應用工作。獲取Oracle資料庫管理或SQL Server資料庫應用或Windows XP應用認證。
就業方向:企業、 *** 、社區、各類學校等部門的中、大型資料庫管理員。
5 圖形圖像製作
精通國際上流行的圖形/圖像製作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。
就業方向:廣告製作公司、建築設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。
6 網路構建技術
熟悉網路結構和組網方式,掌握建網方法,能利用工具分析和排除常見網路故障。獲取Cisco路由配置或華為網路工程或AMP應用工程師認證。
就業方向:企業、 *** 、社區、各類學校等網路構建工程師。
7 網路系統管理
掌握網路系統管理的基本知識與應用技能,能進行網路系統的安全設置。獲取Window2000 Server或TurboLinux TLCE或Cisco路由配置專家認證。
就業方向:企業、 *** 、社區、各類學校等網路系統管理員。
8 多媒體製作
具有多媒體程序設計與多媒體製作策劃的能力。基本掌握面向對象程序設計與建模、造型設計、場景設計、分鏡頭原理等技能。獲取多媒體設計師相關的認證。
就業方向:多媒體設計與製作公司、動畫美術製作出版公司、廣告製作公司。
問題五:准備自學計算機編程,這幾個哪個易學,哪個就業前景好 對於計算機,無論你學那個語言,那個語言的技術,C語言是一個無比重要的基礎。
以Java為例
如果你沒有C語言,Java的學習將無比困難。而java是Android基礎中的基礎。不學C語言的指針,不知道動態內存分配,你將幾乎無法理解Java中關於類的一切知識。
如果不學C語言,Java將會被認為無比復雜。僅僅一個HelloWord就要各種關鍵字 4 個之多。所謂「面向過程」、「面向對象」等重要概念更是無從說起。
C語言是一個基礎,是一個經驗。Java和C語言是走向所有編程語言的通行證。絕不可單一不變,融會貫通是關鍵。學精任意一門,都將前途無量。
隆重推薦
郝斌的各種編程教程(包括JAVA)
以下來自網路貼吧:
之前發過一次帖子... ...不過好像沉下去了, 看到好多人需要, 再發一次吧... ... 手機自帶的播放器是不可以播放的, 各位若一款播放器不行就換幾款常用的播放器試試看, 肯定有 *** 播放的.
郝斌c語言avi格式教程:pan./s/1kTsuSbt?密碼:z7y8
郝斌SQL 2005教程avi格式:pan./s/1i31mz8T
郝斌java教程avi格式:pan./s/1sjLVted
郝斌數據結構教程avi格式:pan./s/1hqAbUPQ。
原帖自:
tieba./...&pn=0&
我就是從這里開始的,祝你好運。
問題六:如何學習電腦編程入門。 編程與數學成績的好壞沒有什麼直接聯系,如果想學好編程,最好不要一開始就學高級語言(比如VB之類的),那會讓你以後的編程水平沒進步。
第一步,可以先從《微機原理與匯編技術》開始,有了基本的計算機基礎,你才會對整個計算機編程的原理以及來龍去脈有個大致的了解。
第二步,把C語言學好,可以不要求精通,但是一定要掌握的全面一點。C語言的編碼軟體很多,比如borland C,網上很多,網路可以找到。
第三步,c++。可以先接觸Borland C Builder V6.0。學習的教材有 「C++程序設計譚浩強100%25完整・清華大學」,網上有其電子書。
第三部學好C++之後,可以陸續瀏覽下C#,VB之類的高級語言,只有學好了一門語言,其他語言才會一通百通。
問題七:在哪裡學電腦編程好 你好,學電腦介意去正規專業的電腦學校學習,在好的學習環境里能有更好的收獲。
問題八:如何學好計算機,需要什麼條件? 學計算機首先是數學要好,因為計算機編程必須要藉助數學思想來進行建模,有就是英語,程序代碼都是英文的。計算機很枯燥,所以必須要下苦工才能成功,和那些打游戲之類的不同。
問題九:想學電腦編程從什麼開始學起好? 我個人的學習過程(供參考) 最早是要有對計算機的興趣:看了許多雜志和報紙,當然都是些硬體知識和軟體的使用技巧,這是啟蒙書 後來我利用高三暑期自學了編程,是VB,快開學的時候我基本算是小通VB了 來到大學,我的專業是計算機,於是在學校學了C語言,這個時候我就發現,傳說中過時的VB竟對我學C語言帶來了極大的幫助,因為我已經有了編程的思想了,之後我學習 POWER BUILDER , VB.NET , ASP.NET , JAVA等編程語言,真的是越學越順.... 說到這里我就不繼續吹牛了,我只想再說一句:經驗都有它的特殊性,有學准有用,別聽別人扯蛋
問題十:從零開始學習計算機編程應該怎麼學 樓主注意一下 如果想學計算機的話需要很強的自學能力和耐性 如果這兩點沒有最好別學。
如果想學第一步需要學習一門編程語言推薦C語言 樓主可以查下編程語言排行榜C一直穩居第一名
從基本的C語言語法入手,邊學語法邊寫程序不要忘記做一下書籍的課後編程練習題,然後可以學習下java語言,java有自己的很多程序庫可以直接調用,買本java的教程看看可以寫寫小程序了。然後如果想深入你還需要學習操作系統、計算機組成原理、計算機網路、編譯原理、還有數學(離散數學很重要),當然了還學要學別的東西,太多了一下子說不全。我是軟體工程專業,課程基本自學的,純經驗之談。
D. 怎麼學習數據結構(嚴蔚敏的c語言版)
1、如果你沒有學過C語言,或者C語言學的不好的時候把數據結構當成一本數學書來學,它所講述的都是一些簡單的圖論。在你的大腦中的主線不能丟失:線性結構,樹結構和圖結構。當你不再考慮復雜的程序設計時,僅僅研究個個離散點之間的關系,似乎數據結構也就不會那麼難了。
2、學習好了抽象的離散點關系後,再鞏固一下你的C語言水平,書中描述的都是類C。因此你只要學習簡單的C定義、判斷、循環語句就基本能看的懂課本中所有程序了。
3、以上都完成後,從數據結構的線性表開始。線性表中順序表似乎是為你學習C語言設計的,學好線性表的鏈表是你起步的關鍵。後面的樹結構,圖結構,排序,查找都少不了鏈式結構,往往這個也是最難的。
4、看程序的時候一定要自己在紙上畫畫,最好先學會畫程序的流程圖,也許那樣你學程序也就會更快一些。
5、數據結構是程序設計的最基本也是最有用的地方,學完之後你會受益匪淺的,也許這本書可以決定你以後的道路或者命運。
6、c語言是最基礎的課程,考計算機的研肯定的學c語言了,怎麼不提前准備呀,嚴蔚敏的書太理論了,我建議你看一本《數據結構案例教程(c語言版)》的書,這本書主要是講的案例,就是演算法的實現,你在結合嚴蔚敏的書看理論,我覺得這樣會容易點吧,數據結構是建立在某一種語言的基礎上實現的,如果你會C++JAVA等語言的話,你當務之急就不要看c語言版的數據結構,C++版的或是JAVA版的數據結構都行,你先拿先來然後再學c語言。
E. 數據結構 c語言版 ——順序表的查找、插入與刪除
#include<stdio.h>
#include<stdlib.h>
#define N 10 //順序表的最大容量
int length=0; //順序表的當前元素個數
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define LIST_INIT_SIZE 100//線性表存儲的空間初始化分配量
#define LISTINCREAMENT 10 //線性表存儲空間的分配增量
typedef struct LNode//線性單鏈表存儲結構
{
int data;
struct LNode *next;
}LNode,*LinkList;
int CreatList_L(LinkList&L)//創建一個線性鏈表
{
L=(LinkList)malloc(sizeof(LNode));//分配一個空間給鏈表,作為頭結點
if(!L) exit(OVERFLOW);
L->next=NULL;
return OK;
}
int DestroyList_L(LinkList &L)//銷毀鏈表
{
if(L) free(L);
return OK;
}
int ListInsert_L(LinkList&L,int i,int e)//再練表的第i個元素前插入一個元素e
{
LinkList p=L;//p指針定位於i-1
LNode *s;
int j=0;
while(p&&j<i-1) {p=p->next;j++;}//定位
if(!p||j>i-1) return ERROR;//如果i<1或大於鏈表元素個數+1
s=(LNode*)malloc(sizeof(LNode));
if(!s) exit(OVERFLOW);
s->data=e; //完成插入操作
s->next=p->next;
p->next=s;
return OK;
}
int ListDelet_L(LinkList&L,int i,int&e)//刪除鏈表L中的第i個元素,並返回給e;
{
LinkList p=L;
LNode* q;
int j=0;
while(!p&&j<i-1) {p=p->next;j++;}//p指針定位於i-1;
if(!p->next||j>i-1) return ERROR;
e=p->next->data; //完成刪除操作
q=p->next;
p->next=p->next->next;
free(q);
return OK;
}
int ListTraverse_L(LinkList L,int n)//鏈表的遍歷
{
int i=0;
if(!L)return ERROR;
L=L->next;
while(L)
{
if(L->data==n)return i;
L=L->next;
i++;
}
return FALSE;
}
int InverseSingleList_L(LinkList &L)
{
if(!L->next||!L->next->next)//如果鏈表少於2個Node那麼鏈表不需要改變順序
return OK;
LNode *p,*q;
p=L->next; //第一次因為p是最後一個連接所以把p->next設為空
q=p->next;
p->next=NULL;
p=q;
while(p)
{
q=p->next; //用q去保留p後面一個Node;
p->next=L->next;
L->next=p;
p=q;
}
return OK;
}
int main()
{
int List[N];
LinkList L;
int ch,exit='N';
do
{
system("CLS");
printf("\t\t********************************************\n");
printf("\t\t* 1.創建一個順序表 .........(1) *\n");
printf("\t\t* 2.在順序表中查找元表.........(2) *\n");
printf("\t\t* 3.在順序表中插入元表.........(3) *\n");
printf("\t\t* 4.在順序表中刪除元表.........(4) *\n");
printf("\t\t* 5.退出 .........(5) *\n");
printf("\t\t********************************************\n");
printf("\n請選擇操作代碼:");
ch=getchar();
switch(ch)
{
case '1':
printf("\n請輸入十個元素");
CreatList_L(L);
for(length=0;length<N;length++)
{
scanf("%d",&List[length]);
getchar();
ListInsert_L(L,length+1,List[length]);
}
printf("\n創建成功!");
getchar();
break;
case '2':
scanf("%d",&List[0]);
if(ListTraverse_L(L,List[0]))printf("該元素存在該年表的第%d個位置",ListTraverse_L(L,List[0]));
else printf("不存在該元素");
getchar();
break;
case '3':
scanf("%d%d",&length,&List[0]);
ListInsert_L(L,length,List[0]);
system("pause");
break;
case '4':
scanf("%d",&length);
ListDelet_L(L,length,List[0]);
system("pause");
break;
case '5':
printf("\n您是否真的要退出程序(Y/N):");
getchar();
exit=getchar();
break;
default:
getchar();
printf("\n無效輸入,請重新選擇...:");
getchar();
break;
}
}while(exit!='y'&&exit!='Y');
}