① 數據結構(c語言版)
1.類型定義有問題,將LinkList定義的都改為LNode *吧!
2.有一處else寫為elst了
幫你改了一下,正在是修改後的程序:
可以編譯通過,但不知道邏輯是否正確,自己檢查一下哈!
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
int ListInsert_L(LNode *head,int i,char e)
{
LNode *p=head;
LNode *s;
int j;
p=p->next;
for(j=1;j<1;j++)
{
if(p) p=p->next;
else break;
}
if(!p||i<1)
{
printf("請輸入正確的值\n");
return 0;
}
s=(LNode*)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
LinkList CreateList_L(LinkList head)
{
char temp;
LinkList p;
printf("請輸入結點值(輸入0結束):");
fflush(stdin);
scanf("%c",&temp);
while(temp!='0')
{
if(('A'<=temp&&temp<='Z')||('a'<=temp&&temp<='z'))
{
p=(LinkList)malloc(sizeof(LNode));
p->data=temp;
p->next=head->next;
head->next=p;
}
printf("請輸入結點值(輸入0結束):");
fflush(stdin);
scanf("%c",&temp);
}
return head;
}
int ListDel_L(LinkList head,int i)
{
LinkList p,tmp;
int j;
p=head->next;
tmp=head;
for(j=1;j<i;j++)
{
if(p)
{
p=p->next;
tmp=tmp->next;
}
else break;
}
if(!p||i<1)
{
printf("請輸入正確的值:\n");
return 0;
}
tmp->next=p->next;
free(p);
return 1;
}
void ListPint_L(LinkList head)
{
LinkList p;
int i=0;
p=head->next;
while(p!=NULL)
{
i++;
printf("第%d個元素是:",i);
printf("%c\n",p->data);
p=p->next;
}
}
void main()
{
int i;
char cmd,e;
LinkList head;
head=(LinkList)malloc(sizeof(LNode));
head->next=NULL;
CreateList_L(head);
ListPint_L(head);
do
{
printf("i,I...插入\n");
printf("d,D...刪除\n");
printf("q,Q...退出\n");
do
{
fflush(stdin);
scanf("%c",&cmd);
}while ((cmd!='d')&&(cmd!='D')&&(cmd!='i')&&(cmd!='I')&&(cmd!='q')&&(cmd!='Q'));
switch (cmd)
{
case 'i':
case'I':
printf("請輸入你要插入的數據:");
fflush(stdin);
scanf("%c",&e);
printf("請輸入你要插入的位置:");
scanf("%d",&i);
ListInsert_L(head,i,e);
ListPint_L(head);
break;
case 'd':
case 'D':
printf("請輸入你要刪除元素的位置:");
fflush(stdin);
scanf("%d",&i);
ListDel_L(head,i);
ListPint_L(head);
break;
}
}while ((cmd!='q')&&(cmd!='Q'));
}
② 數據結構(C語言版)
給你給個pdf自己看吧
嚴蔚敏數據結構c語言版pdf
http://download.csdn.net/source/181673
這是我們老師認為的比較好的數據結構教材
③ 數據結構c語言版
#include "stdio.h"
typedef char datatype;
typedef struct node{
datatype data;
struct node *next;
} stack;
stack * creat(void)
{
char ch;
stack * head;
stack *p;
head=NULL;/*初始化為空*/
ch=getchar( );
while (ch!='\n'){
p=(stack*)malloc(sizeof(stack));/*分配空間*/
p->data=ch;/*數據域賦值*/
p->next=head;/*指定後繼指針*/
head=p;/*head指針指定到新插入的結點上*/
ch=getchar( );
}
return (head);
}
void MakeNull(stack *s)/*使棧s為空*/
{
stack *p=s;
while(s!=NULL){
s=s->next;
free(p);/*釋放空間*/
p=s;
}
}
datatype Top(stack *s)
{
if(Empty(s))/*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else
return s->data;
}
void Pop(stack *s)
{
stack *p;
if(Empty(s)) /*s為空棧,直接跳出,提示出錯信息*/
printf("The stack is empty.");
else{
p=s;
s=s->next;
free(p);/*釋放棧頂空間*/
}
}
void Push(stack *s,datatype x)
{
stack *p;
p=(stack*)malloc(sizeof(stack));
p->data=x;
p->next=s;
s=p;
}
int Empty(stack *s)
{
return(s==NULL);
}
void main()
{
stack* m_stack=creat();
char m_top;
if(!Empty(m_stack))
{
m_top=Top(m_stack);
Pop(m_stack);
}
else
Push(m_stack,'a');
MakeNull(m_stack);
}
④ C語言源程序文件的後綴是什麼,經過編譯後生成文件的後綴是什麼經過連接後生成文件的後綴是什麼
C語言源文件後綴名是.c,編譯生成的文件後綴名是.obj,連接後可執行文件的後綴名是.exe。
源文件的後綴僅僅是為了表明該文件中保存的是某種語言的代碼(例如.c文件中保存的是C語言代碼),這樣程序員更加容易區分,編譯器也更加容易識別,它並不會導致該文件的內部格式發生改變。
(4)數據結構c語言版的擴展名擴展閱讀
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大。
依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
C語言是普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點。
⑤ 《數據結構(C語言版)》
你是說清華大學的教材嗎?嚴蔚敏和吳偉民編著的那本?
這本書的話作為教材整體還不錯,但是如果自學的話就比較枯燥了。
其實國內有很多新出的數據結構都不錯,不管是用C++還是JAVA,還是C,或者其他語言描述的,感覺很多都比這本要好。
學習數據結構的話,我推薦看《數據結構與演算法分析 : C語言描述》這本書,個人認為比清華大學的這本講述的要好一些~當然僅僅是個人立場,給個建議。
⑥ 數據結構 c語言版(嚴尉敏)
我看了一下,好像沒有代碼,全稱是:
《數據結構(C語言版)》配書光碟
DSDemo
數據結構演算法演示(Windows版)
使
用
手
冊
一、
功能簡介
本課件是一個動態演示數據結構演算法執行過程的輔助教學軟體,
它可適應讀者對演算法的輸入數據和過程執行的控制方式的不同需求,
在計算機的屏幕上顯示演算法執行過程中數據的邏輯結構或存儲結構的變化狀況或遞歸演算法執行過程中棧的變化狀況。整個系統使用菜單驅動方式,
每個菜單包括若乾菜單項。每個菜單項對應一個動作或一個子菜單。系統一直處於選擇菜單項或執行動作狀態,
直到選擇了退出動作為止。
二、
系統內容
本系統內含84個演算法,分屬13部分內容,由主菜單顯示,與《數據結構》教科書中自第2章至第11章中相對應。各部分演示演算法如下:
1.
順序表
(1)在順序表中插入一個數據元素(ins_sqlist)
(2)刪除順序表中一個數據元素(del_sqlist)
(3)合並兩個有序順序表(merge_sqlist)
2.
鏈表
(1)創建一個單鏈表(Crt_LinkList)
(2)在單鏈表中插入一個結點(Ins_LinkList)
(3)刪除單鏈表中的一個結點(Del_LinkList)
(4)兩個有序鏈表求並(Union)
(5)歸並兩個有序鏈表(MergeList_L)
(6)兩個有序鏈表求交(ListIntersection_L)
(7)兩個有序鏈表求差(SubList_L)
================================================
我有,留下email,最好是Gmail
盤中內容
\DSDemoW
數據結構演算法演示系統(Windows版)β測試版
\DSDemoC
數據結構演算法演示系統(C語言描述)V3.1C中文版
Readme.txt
光碟使用說明
對不對?
⑦ 數據結構(C語言版)的內容簡介
《數據結構》(C語言版)是為「數據結構」課程編寫的教材,也可作為學習數據結構及其演算法的C程序設計的參數教材。
本書的前半部分從抽象數據類型的角度討論各種基本類型的數據結構及其應用;後半部分主要討論查找和排序的各種實現方法及其綜合分析比較。其內容和章節編排1992年4月出版的《數據結構》(第二版)基本一致,但在本書中更突出了抽象數據類型的概念。全書採用類C語言作為數據結構和演算法的描述語言。
本書概念表述嚴謹,邏輯推理嚴密,語言精煉,用詞達意,並有配套出版的《數據結構題集》(C語言版),便於教學,又便於自學。
本書後附有光碟。光碟內容可在DOS環境下運行的以類C語言描述的「數據結構演算法動態模擬輔助教學軟體,以及在Windows環境下運行的以類PASCAL或類C兩種語言描述的「數據結構演算法動態模擬輔助教學軟體」。
本書可作為計算機類專業或信息類相關專業的本科或專科教材,也可供從事計算機工程與應用工作的科技工作者參考。
⑧ 數據結構C語言版
//二叉樹的先序遍歷序列:ABCEDFHGIJ
//二叉樹的中序遍歷序列:ECBHFDJIGA
//二叉樹的後序遍歷序列:ECHFJIGDBA
#include"stdio.h"
#include"stdlib.h"
structtree
{
chardata;
structtree*left;
structtree*right;
};
typedefstructtreetreenode;
typedeftreenode*btree;
btreecreatebtree(char*data,intpos,intmaxPos)//遞歸創建法
{
btreenewnode;
if(data[pos]==0||pos>maxPos)
{
returnNULL;
}
else
{
newnode=(btree)malloc(sizeof(treenode));
newnode->data=data[pos];
newnode->left=createbtree(data,2*pos,maxPos);
newnode->right=createbtree(data,2*pos+1,maxPos);
returnnewnode;
}
}
voidinorder(btreeptr)
{
if(ptr!=NULL)
{
inorder(ptr->left);
printf("%C",ptr->data);
inorder(ptr->right);
}
}
voidpreorder(btreeptr)
{
if(ptr!=NULL)
{
printf("%C",ptr->data);
preorder(ptr->left);
preorder(ptr->right);
}
}
voidpostorder(btreeptr)
{
if(ptr!=NULL)
{
postorder(ptr->left);
postorder(ptr->right);
printf("%C",ptr->data);
}
}
intmain()
{
btreeroot=NULL;
inti;
chardata[64]={0,'A','B',0,'C','D',0,0,
'E',0,'F','G',0,0,0,0,
0,0,0,0,'H',0,'I',0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,'J',0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
root=createbtree(data,1,63);
printf("二叉樹的順序存儲內容: ");
for(i=1;i<64;i++)
{
if(data[i]==0)
{
printf("^");
}
else
{
printf("%C",data[i]);
}
if(i%8==7)printf(" ");
}
printf(" 二叉樹的先序遍歷序列:");
preorder(root);
printf(" 二叉樹的中序遍歷序列:");
inorder(root);
printf(" 二叉樹的後序遍歷序列:");
postorder(root);
printf(" ");
return0;
}